複数列のインデックスでは、どのタイプのクエリがインデックスを使用できるかに関して順序が重要であることを知っています。に記載されてWHERE
いる列は、インデックスの左端の列である必要があります。これに関するPostgresの記事があります。
ただし、すべての列が使用されている場合を考えてみましょう。次の 2 つのシナリオで、順序はインデックスを使用するパフォーマンスに影響しますか?
- 複数のクエリ
=
。例:SELECT * FROM "posts" WHERE "user_id" = 5 AND "post_type" = 'Thing' AND "state" = 'active'
- を含むクエリで
IN
。例:SELECT * FROM "posts" WHERE "user_id" = 5 AND "post_type" = 'Thing' AND ("state" IN ('active', 'draft'))