3
我有一個表格和一個GIN索引。在PostgreSQL中搜索快速標籤(數組,GIN,seqscan)
(enable_seqscan
是在默認情況下)
SET enable_seqscan TO on;
SELECT id FROM tags WHERE tags @> array['category_72'];
查詢運行在1000-1600 MS
SET enable_seqscan TO off;
SELECT id FROM tags WHERE tags @> array['category_72'];
相同的查詢在1-10毫秒運行(100-快1000倍)。
有人可以澄清爲什麼會發生這種情況,以及是否可以提示PostgreSQL在查詢中使用GIN索引,而不設置enable_seqscan關閉。
您是否有統計數據? (在創建索引後運行'真空分析標籤;' – wildplasser
感謝您的建議!我現在試圖做到這一點 - 這並沒有改變行爲。 –
如果您顛倒查詢順序,是否會得到相同的行爲? – didierc