平时写count()语句时,括弧里面写的是什么? count(*)?count(1)?count(主键)? 有对比过他们的效率,看过执行计划吗?
针对上面疑问,楼主做了实验,并得出以下结论:
1、abase执行计划:count()、count(1)是选取了一个整型索引字段进行查询的。
2、sybase执行计划:count()、count(1)、count(主键)是选取了一个整型索引字段进行查询的。
3、abase执行效率:count()>=count(1)>=count(整型索引字段)>count(字符索引字段)>count(字符主键)>count(整型非索引字段)
4、sybase执行效率:count()=count(1)=count(整型主键)>count(整型索引字段)>count(字符索引字段)>count(整型非索引字段)
5、abase与sybase的count() 括号里面都是是判断是否为空的,空则不参与计算
6、非特殊场景查询,统一要求使用count(*)