赞
踩
COUNT(常量)
和 COUNT(*)
表示的是直接查询符合条件的数据库表的行数。而COUNT(列名)
表示的是查询符合条件的列的值不为NULL的行数
COUNT(*)
相比COUNT(常量)
和 COUNT(列名)
来讲,COUNT(*)是SQL92定义的标准统计行数的语法,因为他是标准语法,所以MySQL数据库对他进行过很多优化
1、COUNT有几种用法?
count(1) count(*) count(id) count(distinct id)
2、COUNT(字段名)和COUNT(*)的查询结果有什么不同?
3、COUNT(1)和COUNT(*)之间有什么不同?
众说纷纭,没有本质不同
有的说COUNT(*)
执行时会转换成COUNT(1)
,所以COUNT(1)少了转换步骤,所以更快。
还有的说,因为MySQL针对COUNT(*)
做了特殊优化,所以COUNT(*)
更快。
建议使用COUNT(*)
!因为这个是SQL92定义的标准统计行数的语法,而且本文只是基于MySQL做了分析,关于Oracle中的这个问题,也是众说纷纭的呢。
4、COUNT(1)和COUNT(*)之间的效率哪个更高?
5、为什么《阿里巴巴Java开发手册》建议使用COUNT(*)
6、MySQL的MyISAM引擎对COUNT(*)做了哪些优化?
MyISAM做了一个简单
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。