インデックスが正しく使用されている場合をよりよく理解するために、私は可能なケースを列挙したいと思います。postgres:インデックスが使用されている場合
"a"、 "b"、 "c"、 "d"列の表があるとします。
我々は(A、B、C、D)にインデックスを作成:
create index my_index on table my_table (a, b, c, d)
は、それが使用さの場合:
1)
where a=% and b=% and c=% and d=%
2)
where a=% and b=%
3)
where a=%
4)
where b=% and c=% and d=%
5)
where c=% order by b
6)
where a=% and b=% and c=% order by case when d is not null then d else c end
7) のは、今、我々はより7ポイントの列が、インデックスを持っていると仮定しましょうオンのみ(a、b、c、d)
where a=% and b=% and c=% and d=% and e=% and f=% and g=%
また、値に2つの値しかなく、数%または数百万のレコードがあり、%=がインデックスの使用につながっていない場合は、値の分布にもよります。 @ ascherk。 – aschoerk
。 。いい視点ね。私は答えを明らかにした。 –
申し訳ありません、私は7)ケースの編集を追加しました – 91DarioDev