mysql - MySQL中的 `COUNT(*)`和 `COUNT(date_created)`有区别吗

标签 mysql performance

我想知道使用 COUNT(*)COUNT(date_created) 在性能方面是否存在差异。我读过,唯一的语义区别是 COUNT(*) 还包括 NULL 值,但是 date_created 字段在此不能为空具体案例。

我看过各种帖子,但没有人真正回答这个关于 MySQL 的问题。我发现的最好的是@tsilb 在 this thread 上的评论.

最佳答案

如果您在 date_created 上有索引,则不会有任何区别。如果它是一个未索引的列,您将最终进行全表扫描。当您有这样的问题时,您可以通过使用 EXPLAIN SELECT COUNT(*) FROM my_table 并将其与 EXPLAIN SELECT COUNT(date_created) FROM my_table 进行比较来找到很多信息。

关于mysql - MySQL中的 `COUNT(*)`和 `COUNT(date_created)`有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110903/

相关文章:

windows - 性能随机下降

javascript - AngularJS - 哪个范围在性能方面更好? Object.key 还是一些变量?

MySQL MD5 选择

MYSQL SELECT优化(简单)

MySQL 查询开始日期比另一条记录结束日期晚一天的列表

.net - 可以处理机器生成的正则表达式 : *non-backtracking*, O(n) 的正则表达式实现?

performance - Redis 客户端最大限制

java - Hibernate:多对多映射: "Two-way"

mysql - Shell 脚本 - 数学运算和循环

c++ - 在位置 i 插入元素并根据第 i 个元素返回信息