簡體   English   中英

Postgres 9.5如何支持布爾杜松子酒索引

[英]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_readWHERE NOT is_read ,但不是兩者),則部分索引更適合。

但是,從索引中刪除列可能會(稍微)更緊湊,甚至可以在某些情況下加快查詢。

我建議您根據實際數據測試這些方法,或向我們展示(在另一個后續問題中)您所關注的查詢。

以下是上述案例與一些相當人為的數據的比較:
http://rextester.com/OWXUA55980

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM