mysql - 瞬间流量很高的网站,要频繁的插入数据到数据库,应该怎么解决这个问题?
PHP中文网
PHP中文网 2017-04-17 15:15:45
0
7
819

瞬间流量很高的网站,要频繁的插入数据到数据库,怎么才能解决速度慢的问题?要用到什么技术?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(7)
大家讲道理

1. 瞬間的な挿入パフォーマンスを向上させるためのデータベースの分散デプロイメント
2. ビジネスが許可する場合は、非同期挿入にメッセージ キューを使用します
3. キャッシュに Redis などを使用し、データベースに非同期的に挿入します
3 . 挿入操作が頻繁に行われ、関連するクエリが必要ないデータの場合は、mongo

などの非リレーショナル データベースの使用を選択できます。
いいねを押す +0
刘奇

リアルタイム要件がそれほど高くない場合は、中間層として Redis を使用してデータを受信し、バックグラウンドで定期的に Redis からデータを取得するか、メッセージ サブスクリプション メカニズムを使用してデータベースに書き込むことができます。バッチ。

いいねを押す +0
大家讲道理
  1. ストレージ構造の最適化を検討する 2. 可能であれば、複数のマシン、複数のデータベース、および複数のプロセスを検討します。 3. 接続プールとミドルウェア(メッセージキュー)、中間データベース(redis)を搭載 4. マルチスレッド...

いいねを押す +0
黄舟

タオバオの 1 秒あたり 140,000 件の注文などを参考に検索できます。これに対する確実で即効性のある解決策はありません。
簡単に言うと、redis などのサーバー側キャッシュを使用してリクエストを処理します。

いいねを押す +0
迷茫

メッセージキューも考慮する必要があります

いいねを押す +0
小葫芦

キャッシュメカニズムを追加して負荷分散を試してみることができます

いいねを押す +0
大家讲道理

1 ログを見て、リクエストが多すぎるリクエスト アドレスを見つけて、まずその理由を調べて、それが回避できるかどうか、またそれが必要な操作であるかどうかを確認します。
2 ビジネス ニーズに応じて mysql トリガーを作成し、この作業は mysql に任せます
3 swoole を使用してデータベースに非同期的に挿入します
4 マルチスレッド キューを使用できます
5 データをデータベースに直接書き込まず、最初に Redis に書き込んでも構いません

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート