只是爲了更好地瞭解在哪些情況下索引正確使用我想列舉可能的情況。我們假設我們有一個「a」,「b」,「c」,「d」列的表格。postgres:當使用索引
我們創建(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個可能的值,並且有成千上萬或數百萬記錄,其中a =%可能不會導致索引的使用。 – aschoerk
@aschoerk。 。 。好點子。我澄清了答案。 –
對不起,我添加了一個7)案例編輯 – 91DarioDev