mysql中select的count星和count1有区别么
2015-12-17 11:23
495 查看
http://my.oschina.net/zimingforever/blog/76457
之前一直都任务select count(1) from tab的效率要高于count(*),今天看了下执行计划才发现原来一直都是一个误解,mysql的优化器会自动转换。
直接上例子
?
?
执行到这里我发现本机的mysql不显示wraning,我这里直接贴一个同事的测试结果
?
show waring时发现select count(*) 会自动转换成count(0), 但是count某一个字段的时候就不会有这种优化了。
另外这里在贴下sql审核时什么时候要waring下
1、全表扫描
2、count(字段名) 非 count(*)
3、like
4、select *
5、oracle:用 outer join
6、查询时使用timestamp变量
总结一下,count星效率不低,mysql优化器会自动优化,另外有个waring要在自动审核时check下。
之前一直都任务select count(1) from tab的效率要高于count(*),今天看了下执行计划才发现原来一直都是一个误解,mysql的优化器会自动转换。
直接上例子
?
?
另外这里在贴下sql审核时什么时候要waring下
1、全表扫描
2、count(字段名) 非 count(*)
3、like
4、select *
5、oracle:用 outer join
6、查询时使用timestamp变量
总结一下,count星效率不低,mysql优化器会自动优化,另外有个waring要在自动审核时check下。
相关文章推荐
- mysql 数据表解锁
- procedure在Mysql和Sql Server中使用的一些区别
- Windows下mysql忘记root密码的解决方法
- MySQL-Redo Log
- 从mysql中随机读取多条记录
- MySQL-Double Write
- mysql 优化
- 修改MySQL字符集
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- 详解mysql int类型的长度值问题
- MySQL基础安全注意细节
- MySQL性能分析
- mysql命令大全
- MySQL的子查询中FROM和EXISTS子句的使用教程
- MySQL 中随机抽样:order by rand limit 的替代方案
- mysql基础
- Navicat For MySQL
- MySQL的启动程序
- MySQL 如何在线备份历史表
- MySQL 修改字段类型或长度