The*_*ude 4 postgresql performance index postgresql-performance
在位串列上创建索引的最佳方法是什么?假设我有一个 type 列,bit(4)
我想搜索所有设置了特定位的条目。所以如果我有条目:
bitfield | ...
--------------
1001
1010
0110
0010
0000
Run Code Online (Sandbox Code Playgroud)
如果我试图搜索所有0010
设置的条目,我可以轻松地做到这一点。但是我可以使用索引来优化搜索吗?
首先:将 4 位信息存储为单独的boolean
列会更有效- 在各个方面:更容易处理,更容易理解和更改,更容易索引,甚至更小的存储大小!密切相关的答案:
要回答您提出的问题:您可以使用部分索引,例如:
CREATE INDEX foo ON tbl (tbl_id)
WHERE bitfield & '0010' = '0010';
Run Code Online (Sandbox Code Playgroud)
&
作为按位 AND运算符。
tbl_id
作为PK列。(实际的索引列在这里几乎不重要。)
结合匹配查询:
SELECT *
FROM tbl
WHERE bitfield & '0010' = '0010';
Run Code Online (Sandbox Code Playgroud)
但是您的问题可能并不能反映您的完整情况。可能有更好的选择。
归档时间: |
|
查看次数: |
1983 次 |
最近记录: |