想象一个 MySQL
表,其中一个字段 id
包含从数字 1 到十亿的 10 亿行。
当我做这样的查询时
SELECT * FROM table WHERE id > 2000 AND id < 5000;
很明显,id
上的索引将提高该查询的性能。
然而,这样的索引也有助于模数,如下面的查询
SELECT * FROM table WHERE (id % 4) = 0;
在使用模数时使用索引有帮助吗?
最佳答案
没有。
索引中使用的列上的函数(几乎)总是排除索引的使用。即使这不是真的,优化器也可能决定不使用索引。仅获取四分之一的记录可能选择性不够,不值得建立索引。
关于mysql - 使用模数时索引是否会提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386592/