[英]Can GIN or GIST be used for an “containing at least” comparison?
我使用擴展intarray進行與9.2.9版本的int比較。
雖然&&
可以使用索引來過濾包含至少一個值的數組,但有沒有辦法使用GIN或GIST索引來過濾至少有n個值相交的數組?
例如,GIN或GIST如何使用2 <= icount(ARRAY[1,2,3] & int_array_column)
或2 <= ARRAY_UPPER((ARRAY[1,2,3] & int_array_column),1)
?
Teodor Sigaev的smlar擴展有我正在尋找的東西。 %
運算符對n個相交值進行索引。
btree可以索引你的表達式,然后過濾你需要的值的數量:
CREATE INDEX my_awesome_ids
ON my_fat_table (icount(ARRAY[1,2,3] & int_array_column));
SELECT *
FROM my_fat_table
WHERE 2 <= (icount(ARRAY[1,2,3] & int_array_column));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.