前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL count()函数及其优化count(1),count(*),count(字段)区别

MySQL count()函数及其优化count(1),count(*),count(字段)区别

作者头像
JavaEdge
发布2018-05-16 16:30:44
2.6K0
发布2018-05-16 16:30:44
举报
文章被收录于专栏:JavaEdgeJavaEdgeJavaEdge

很简单,就是为了统计记录数 由SELECT返回

为了理解这个函数,让我们祭出 employee_tbl 表

所有记录

统计行的总数

计算 Zara 的记录数

注意:由于 SQL 查询对大小写不敏感,所以在 WHERE 条件中,无论是写成 ZARA 还是 Zara,结果都是一样的

count(1),count(*),count(字段)区别

count(1)和count(*)

作用

都是检索表中所有记录行的数目,不论其是否包含null值

区别

count(1)比count(*)效率高

二 . count(字段)与count(1)和count(*)的区别

count(字段)的作用是检索表中的这个字段的非空行数,不统计这个字段值为null的记录

  • 任何情况下SELECT COUNT(1) FROM tablename是最优选择
  • 尽量减少SELECT COUNT(*) FROM tablename WHERE COL = ‘value’ 这种
  • 杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = ‘value’ 的出现
  • 如果表没有主键,那么count(1)比count(*)快
  • 如果有主键,那么count(主键,联合主键)比count(*)快
  • 如果表只有一个字段,count(*)最快

count(1)跟count(主键)一样,只扫描主键。 count(*)跟count(非主键)一样,扫描整个表 明显前者更快一些。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • count(1),count(*),count(字段)区别
    • count(1)和count(*)
      • 作用
      • 区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档