首页 > 教育学习 > 为什么 > mysql select count(*) 与 select count(id) 两个执行效率怎样?

mysql select count(*) 与 select count(id) 两个执行效率怎样?
2012-01-19 17:59:11   来源:   点击:

    mysql select count(*) 与 select count(id) 两个执行效率怎样?

    3 个答案

    • 答案 1:

      1. 这中间还存在逻辑的差异,count(*)是查询表记录多少行,count(col)是查询(not null)的个数的;2. 假设是myisam引擎,记录数是结构的一部分,已经cache在内存中了,很快就可以得到结构,而innodb仍然需要计算,id如果是主键索引的话,无疑会加快速度;3. 你需要考虑加了where字句的情况.
    • 答案 2:

      myisam 没有where子句 可以直接得出myisam会记录总行数很快myisam有where子句和innodbmysql select count(*) 与 select count(id)的效率没有太大差距,都扫描全表或者where之后的结果,累加可能得到的结果不同count(ID)只会计算 not null值
    • 答案 3:

      count(*) mysql会转为 count(1), count(ID)只会计算 not null值

相关热词搜索:

上一篇:最近 JXTA 从 java.net 转移到 kenai.com 之后更新了两版,有哪些新变化?
下一篇:怎么用正则表达式匹配非 HTML 标记中的拉丁字符?