マスター/詳細の単純なスキーマからいくつかのデータを取得するクエリがあります。WHERE句は次のようになります。
-- These are just random numbers
Where ticket.type_id in ( 2, 3, 4, 5, 7 ) and
(
ticket.color_id is null or
ticket.color_id in ( 1, 2 , 8 )
)
すでに列にインデックスがあります:ticket.type_idとticket.color_id、とにかくQUERY EXPLAIN ANALYZEは、Postgresqlがクエリを満たすためにシーケンシャルスキャンを行っていることを示しています。
このクエリはシステム内で非常に重要で繰り返し発生するため、この場合に備えて特別にインデックスを作成します。