約 220 万行のテーブルがあり、そのテーブルでいくつかの結合を使用してクエリを取得しようとしています。これらの結合の 1 つがサブクエリです。アプリのコードを完全に書き直さない限り、可能な限り最適化しました。
EXPLAIN()
この特定のクエリの結果は次のとおりです。
赤で強調表示したように、クリック テーブルには多数のレコードが含まれています。行 #4 は私のサブクエリ結合ですが、独自のテストを実行すると、その巨大なテーブルが遅さの原因になっているようです。
したがって、このクエリを実行したときに、Amazon CloudWatch でプロビジョニングされた IOPS とレイテンシーを確認しています。
これを見て、さらにプロビジョンド IOPS が必要であると言えるでしょうか? 今のところ1000しかありません。
ここで他に何をすべきか本当に知っています。
私も疑問に思っています-このRDSにリードレプリカがあります。メインDBが本番環境のパフォーマンスに影響を与えないように、キュー内のリードレプリカでこのクエリを実行することは理にかなっていますか?