count(*),count,count(c_bh)效率问题
Posted 月图灵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了count(*),count,count(c_bh)效率问题相关的知识,希望对你有一定的参考价值。
平时写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(*)
以上是关于count(*),count,count(c_bh)效率问题的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 中count count(*) 和count(列名) 函数的区别
Mysql(18)—count(*)count 和count(字段)的区别以及count()查询优化手段
MySQL中count是怎样执行的?———count,count(id),count(非索引列),count(二级索引列)的分析
MySQL中count是怎样执行的?———count,count(id),count(非索引列),count(二级索引列)的分析