[MySQL]sql语句count操作效率排序count(*) count(1) count(主键id) count(字段)

结论:
count(*)>count(1)>count(主键id)>count(字段)

原因:
count(*)单独做过优化,只扫描普通索引树,并且不会取值,按行累加
count(1)遍历表放一个数字“1”进去,判断是不可能为空的,按行累加
count(主键id)遍历表,解析数据把id值取出来,按行累加
count(字段)遍历表,解析数据,判断是否为null,按行累加,如果不是索引的更慢

引擎差异:
innodb表引擎的都要遍历表,因为存在事务下的mvcc机制的原因
myisam引擎的count(*)直接存储了值,不需要遍历直接取值所以最快

相关文章

优化MySQL数据库发布系统存储的方法有:1.mysql库主从读写分...
使用mysql的方法:在“我的电脑”→右键→“管理”→“服务”...
在mysql中查看root用户权限的方法:1.命令行启动mysql服务;...
MySQL主从复制是用来备份一个与主数据库一样环境的从数据库,...
运行mysql的方法1.启动mysql服务,在“我的电脑”→右键→“...
开启mysql的方法1.可以通过快捷键win+r,输入cmd,打开窗口,...