我已经四处寻找答案,但我能找到的唯一参考资料是一个晦涩的论坛帖子,该帖子表明包括 % (模)在内的运算符是“sargable”(即可以使用运算符正在运行的索引)
但是,我们在某些情况下使用模来并行化我们的进程似乎不使用模所在的索引,即使在主键字段上也是如此。这可能是优化器决定无论如何表扫描更便宜,但很难确定回避索引的原因。
有没有人有明确的答案,或分享类似的经验?
Postgres/EDB v9.3
蒂亚。
编辑例如
CREATE TABLE my_table(id bigint, othercolumn varchar(50), PRIMARY KEY(id))
...将 x 百万条记录插入表中...
SELECT othercolumn from my_table where id % 1000 = 0