您的位置:首页 > 数据库 > MySQL

mysql--count(*) 和 count(1)和count(列名)区别以及执行效率上的区别

2020-01-13 03:27 645 查看

1 count(*),查询结果包含null 和空字符串

2 count(1),查询结果包含null 和空字符串

3 count(列名),查询结果不包括null 包含空字符串

4 三者的区别
count()和 count(1) 和 count(列名) 区别:
列名为主键,count(列名) 会比 count(1) 快 ;
列名不为主键,count(1) 会比 count(列名) 快 ;
如果表多个列并且没有主键,则 count(1) 的执行效率优于 count() ;
如果有主键,则 select count(主键)执行效率最优;
如果表只有一个字段,则 select count(*)最优

总结:
1 从执行效率上看,列名为主键,用count(列名);列名唯一,用count();其他用count(1)
2 从执行结果上看
count(1)和count() 包含空字符串和null
count(列名) 包含空字符串,不包含null

参考:添加链接描述

  • 点赞
  • 收藏
  • 分享
  • 文章举报
杨旋(思学) 发布了77 篇原创文章 · 获赞 6 · 访问量 3401 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: