什么是MYSQL count(*)或count(1)更好的选择?

什么是MYSQL count(*)或count(1)更好的选择?,第1张

什么是MYSQL count(*)或count(1)更好的选择?

这是MySQL的答案

它们的性能完全相同-除非您使用MyISAM,否则

COUNT(*)
存在特例。
COUNT(*)
无论如何我总是用。

http://dev.mysql.com/doc/refman/5.1/en/group-by-
functions.html#function_count

如果SELECt从一个表中检索,没有其他列被检索,并且没有WHERe子句,则COUNT(*)被优化以非常快地返回。例如:

mysql> SELECT COUNT(*) FROM student;

此优化仅适用于MyISAM表,因为为该存储引擎存储了准确的行数,并且可以非常快速地对其进行访问。对于诸如InnoDB之类的事务存储引擎,存储准确的行数会带来更多问题,因为可能发生多个事务,每个事务都可能影响计数。


编辑

你们当中有些人可能错过了幽默的黑暗尝试。当MySQL将做与SQL
Server不同的事情时,我宁愿将此问题保留为任何重复的问题。因此,我投了赞成票重新提出问题(答案显然错误)。

以上MyISAM优化同样适用于

COUNT(*)COUNT(1)COUNT(pk-column)COUNT(any-non-nullable-column)

因此,真正的答案是它们 始终 相同。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5150062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存