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