假設你有一些指標表:PostgreSQL - 它會在同一個表上使用兩個索引嗎?
create table mail
(
identifier serial primary key,
member text,
read boolean
);
create index on mail(member_identifier);
create index on mail(read);
如果你現在上有單獨的索引多列查詢,將它曾經用這兩個指數?
select * from mail where member = 'Jess' and read = false;
也就是說,可以PostgreSQL的決定了首先使用member
的索引取了傑斯的所有郵件,然後使用上read
索引來獲取所有封未讀郵件,然後相交兩個結果構造輸出設置?
我知道你可以有多列索引(在這種情況下,在(member, read)
),但如果你有兩個單獨的索引會發生什麼? PostgreSQL會選擇一個還是可以在某些情況下使用它們?
這不是關於特定查詢的問題。理解內部是一個通用的問題。
爲查詢發佈EXPLAIN。 –
@RaymondNijland這個問題不是關於特定的查詢,而是更多的一個通用的問題來理解內部。 –