1

最近、挿入クエリの過負荷が原因で、サーバーに大きな問題が発生し始めました。サーバー上のすべてのクエリは常に最適化されていますが、トラフィックが再び増加し、大量の INSERT クエリのために CPU が限界に達しています。

オンラインの訪問者だけでなく、オンラインのユーザーとそのユーザーが閲覧しているページを追跡するために、当社の Web サイトにアクセスするすべての訪問者に対して INSERT .. ON DUPLICATE UPDATE クエリを実行します。

サーバーの負荷を軽減するために他にどのような方法があるのか​​ わかりません。また、何をすべきかわかりません。

何か案は?

4

1 に答える 1

2

これを処理する私のお気に入りの方法は、訪問者データをサーバー メモリにバッファリングしてから、ときどき一括挿入を行うことです。

たとえば、X 個の訪問者ログがメモリ内でキューに入れられた場合にのみ、データベースに書き込みます。X は、アプリケーションに応じて 10 から 1000 の間になる可能性があります。

データベース サーバーに送信するコマンドに 1000 個の挿入コマンドが含まれている場合でも、アプリケーション サーバーとデータベース サーバー間の往復は 1 回だけです。したがって、多くの個別の接続を管理するオーバーヘッドがなくなります。

さらに、MySQL サーバーの負荷を取り除くために、そのようなデータのエラスティック検索などの NoSQL ハイブリッドを検討することもできます。拡張性が非常に高く、インデックス作成 (挿入)、クエリ、またはその両方に対して最適化できます。

于 2013-02-11T00:56:46.413 に答える