検索

ホームページ  >  に質問  >  本文

mysql - 瞬间流量很高的网站,要频繁的插入数据到数据库,应该怎么解决这个问题?

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

PHP中文网PHP中文网2836日前815

全員に返信(7)返信します

  • 大家讲道理

    大家讲道理2017-04-17 15:17:45

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

    などの非リレーショナル データベースの使用を選択できます。

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 15:17:45

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:17:45

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

    返事
    0
  • 黄舟

    黄舟2017-04-17 15:17:45

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

    返事
    0
  • 迷茫

    迷茫2017-04-17 15:17:45

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 15:17:45

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:17:45

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

    返事
    0
  • キャンセル返事