暂无图片
返回数说广场
2022-12-28
以下查询是否可以使用上STATUS列上的索引? select count(*) from (select c1 from t1 where status='VALID') tab1; 其中t1表上有数十万行记录,大约占用了100MB的空间。并且status列上有索引,但满足status='VALID'的记录超过一半。C1列上无非空约束。 A 不可以,因为C1列上无非空约束。而COUNT计数时,空值不计数。因此,即便走STATUS列上的索引,也需要回表获得C1列上的值。再加上满足条件的记录数超过一半,这时走该索引反而比全表扫成本更高。 B 可以,因为过虑条件只有STATUS列,访问STATUS列上的索引即可以得到正确的结果。 B
#日有所学#
0
暂无图片 0
191
分享

评论

热门数说