32

Amazon EC2 (シンガポール地域) でウェブサイトを公開し、データ ストレージに MySQL RDS インスタンスを使用しました。パフォーマンスを除いて、すべてが非常にうまく機能しています。

私のすべてのクエリ、特にselectステートメントの実行が非常に遅いようです。この問題をローカル PC で確認すると、問題なく動作しています。しかし、RDS インスタンスからデータを取得しようとすると、非常に遅くなります。一部の select ステートメントでは、データのフェッチに 2 ~ 3 秒かかります。

すべてのテーブル インデックスを適切に調整し、必要に応じて正規化/非正規化しました。RDS カスタム パラメータ グループで必要なすべての設定を行いました (例: max_connectionbufferなど)。何かが欠けているかどうかはわかりませんが、うまくいきませんでした-パフォーマンスは向上しませんでした.

それで、誰かがこの問題について私を助けてくれませんか?

4

8 に答える 8

37

なんらかの理由で、RDS では MySQL クエリ キャッシュがデフォルトでオフになっていることに注意してください。今週、私たちは難しい方法でそれを学びました。

これは最初のクエリのパフォーマンスには役立ちませんが、一般的に速度が向上する可能性があります。

クエリ キャッシュを再度有効にするには:

  1. RDS コンソールへのログイン
  2. RDS インスタンスをクリックして詳細を表示します
  3. データベース パラメータ グループの編集
  4. query_cache_sizeと の両方を必ず設定してください。query_cache_type

(免責事項:私はDBAではないので、ここで見逃していることが他にもあるかもしれません)

于 2014-01-08T15:52:59.007 に答える
9

レイテンシを最小限に抑えるには、RDS と EC2 インスタンスを同じリージョンだけでなく、同じアベイラビリティ ゾーンにも配置することが重要です。

EC2 でアイルランドでホストされている API を持っていて、別のプロジェクト用にセットアップした米国バージニア州の MySQL クラスターにデータベースを移動しましたが、すべての SQL クエリの往復で API が使用できなくなりました。

于 2013-07-15T16:01:51.320 に答える
2

まず、これらのクエリを使用して調べることを強くお勧めします

完全なプロセスリストを表示

詳細については、SHOW FULL PROCESSLISTを参照してください。

これにより、各クエリにかかった時間が表示されます。

次に、使用できます

説明

詳細については、EXPLAINを参照してください。

これにより、クエリを強化する必要があるかどうかが表示されます

于 2014-08-12T08:04:39.153 に答える