[英]How to create support functions for gin index on custom operator class in postgres?
[英]Postgres 9.5 how to support boolean gin index
由於9.5中的btree_gin
不支持布爾數據類型,我如何使用布爾列作為多列gin索引的一部分?
從技術上講,它是可能的,但您需要索引(is_read::int::bit)
表達式(而不是直接索引列)。 但是 :您需要在WHERE
子句中使用此表達式來使用此索引; 即:
WHERE is_read::int::bit = '1'
-- or
WHERE is_read::int::bit = '0'
-- or even
WHERE is_read::int::bit < '1' -- which is just an obfuscated version of "= '0'"
但是,這會使您的查詢不太可讀。 甚至可能更慢(見后文)。
如果您查詢過一個值(即WHERE is_read
或WHERE NOT is_read
,但不是兩者),則部分索引更適合。
但是,從索引中刪除列可能會(稍微)更緊湊,甚至可以在某些情況下加快查詢。
我建議您根據實際數據測試這些方法,或向我們展示(在另一個后續問題中)您所關注的查詢。
以下是上述案例與一些相當人為的數據的比較:
http://rextester.com/OWXUA55980
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.