假设我有一个包含 2000 万行的表,我想像这样索引:
CREATE INDEX fruit_color
ON fruits
USING btree
(color);
现在假设只有 2% 的水果有颜色,其余的都是NULL
。我的查询永远不会想找到有颜色NULL
(没有颜色)的水果,所以问题是,如果我将索引更改为,它会对 postgresql 产生影响:
CREATE INDEX fruit_color
ON fruits
USING btree
(color)
WHERE color IS NOT NULL;
我对 postgresql 处理索引的内部方式了解不多,所以这就是我问的原因。
PS postgresql版本是9.2