码迷,mamicode.com
首页 > 其他好文 > 详细

count(*) count(1) count(id)

时间:2021-01-14 11:00:38      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:force   mysq   执行   强制   table   The   查询   取出   执行计划   

性能:

COUNT(*)=COUNT(1)>COUNT(id)

可能你会疑惑为什么 COUNT (id) 会比前两者慢呢,因为除了计数之外,COUNT (id) 需要把主键的值取出来

通过explain查看执行计划发现:

  1. COUNT (*) 被 MySQL 的查询优化器改写成了 COUNT (0),并选择了 idx_status 这个索引
  2. COUNT (1) 和 COUNT (id) 也都选择了 idx_status 这个索引
  3. 只有在我们加了 force index (primary) 之后,才强制走了主键索引

备注

count()函数不会统计NULL行

id name
1 wang
3 sun

count(*) = 3

count(1) = 3

count(id) = 2

count(*) count(1) count(id)

标签:force   mysq   执行   强制   table   The   查询   取出   执行计划   

原文地址:https://www.cnblogs.com/vaen/p/14271594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!