0

非常に大きな結果セット (20K の結果と各行に 5 列) を生成するクエリを実行する必要があります。

データに対して何らかの処理を行っており、結果を別のデータベース テーブルに格納しています。

このすべての処理は cron プロセスで行われます。

私の問題は、クエリを実行すると、プロセスが完了するまでデータベース サーバーの CPU 使用率が最大 100% に達することです。

この種のシナリオのベスト プラクティスを理解するのを手伝ってください。

4

1 に答える 1

1

このような場合、MySQLインスタンスの最適化や垂直スケーリングについて考え始める必要があります。

  • 使用しているSQLクエリを最適化する方法を見つけてください
  • 可能であれば、より軽いクエリを実行するいくつかのステップにcronジョブを分割します。
  • 返されたクエリセットのデータの一部が各cron実行で同一である場合は、キャッシュします。
  • スクリプトの実行頻度がそれほど重要でない場合は、実行を分割し、クエリセットをより少ない数に制限します。クエリセットの5kアイテムを使用して、スクリプトを20分で4回実行できます。
  • 可能であれば、非リレーショナルデータベースへの移行を検討してください。
  • MySQLインスタンスのパフォーマンス調整を行います。
于 2013-01-02T10:20:48.577 に答える