クエリパフォーマンスチューニング:スロークエリを未然に防ぐために計測する by すか

PHP Conference Japan 2023
レギュラートーク(25分)

クエリパフォーマンスチューニング:スロークエリを未然に防ぐために計測する

sucalul すか sucalul
2

「推測するな、計測せよ」という言葉は、改善策を探す時だけでなく、新機能をリリースする時も同様で、「計測」することは重要です。
開発環境の少量のデータを扱う場合は問題なく動作するクエリも、本番環境の大量のデータではパフォーマンス低下し、スロークエリになる可能性があります。
今回は、フィルターによる約160万行削除とNested Loopのトータルコストが約12万、実行時間が約600msかかるクエリを、サブクエリを活用し、Nested Loopを無くし、実行時間を約0.2msに改善をした事例を取り上げます。

話すこと

  • 実行計画の解読:EXPLAINコマンドの理解
  • 実際に行った対応
    • 本番レコードの調査
    • どのようにクエリの再設計を行ったか
    • INDEXの再考

注意:このトークではPostgreSQLを使用しています。