sql2012,返回数据多时不走索引
当数据达到一定值时,都会走表扫描
旧版如SQL2005时就有计算选择性的比例为 满足条件的行数/总行数<=0.7181,会走索引,其它会走表扫描
有兴趣可以自己去不同版本中去测试
这个不是按照行数来算比例的,是按照成本来的。一行长度10字节,和一行长度1000字节,这个行数比例就不一样。
一般来说,行数比例达到0.01,肯定就是表扫描了(如果索引不能覆盖的话)
想不想时已是想,不如不想都不想。
Sorry记错了,十年前曾简单测过一下,0.7181%测试的结果值,这个选择点低于 1%,不同的SQL版本和表的结构不同可能会有所不同 对依赖于查询选择性的执行计划,查询的效率取决于选择性,会为每一行执行lookup.在一些选择点上优化器会认为表扫描更高效