您好,匿名用户
随意问技术百科期待您的加入

在mysql中计算记录总数时是使用COUNT(id) 还是 COUNT(*) ?

0 投票

根据我的理解,应该是使用COUNT(id)更加快速,因为如果我的id是一个自增的主键,那么计算它的数量显然比计算所有字段的数量需要消耗的资源少一些。但是我不止在一篇的类似指导mysql查询加速的文章中看到,都建议我们使用SELECT COUNT(*)而非直接COUNT主键,这是为什么呢?

用户头像 提问 2012年 12月1日 @ Dante 上等兵 (290 威望)
分享到:

1个回答

0 投票

貌似是因为用MyISAM引擎的表存储了总条数,如果没有WHERE或者WHERE恒为真(比如WHERE 1),那么COUNT(*)可以直接返回总条数。

另外,很显然COUNT(*)不是"计算所有的字段",显然MySQL会把*解析成“一条数据”的意思。

用户头像 回复 2012年 12月1日 @ Lucia 上等兵 (416 威望)
提一个问题:

相关问题

0 投票
1 回复 31 阅读
0 投票
1 回复 35 阅读
用户头像 提问 2012年 12月1日 @ Pikachu 上等兵 (475 威望)
0 投票
1 回复 45 阅读
+1 投票
1 回复 55 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...