相关(SQL Server): 计数 (*) 与计数 (1)
你能告诉我什么性能更好(MySQL)?计数(*)还是计数(1)?
这是 MySQL 的答案。
它们的执行完全相同 - 除非您使用 MyISAM,然后是一个特殊情况COUNT(*)
存在。我总是用COUNT(*)
anyway.
https://dev.mysql.com/doc/refman/5.6/en/aggregate-functions.html#function_count
For MyISAM
桌子,COUNT(*)
被优化以非常快地返回,如果SELECT
从一张表中检索,不检索其他列,并且
没有WHERE
条款。例如:
mysql> SELECT COUNT(*) FROM student;
此优化仅适用于MyISAM
表,因为为此存储引擎存储了精确的行数
并且可以非常快速地访问。COUNT(1)
仅受相同的
如果第一列定义为优化NOT NULL
.
###EDIT
Some of you may have missed the dark attempt at humour. I prefer to keep this as a non-duplicate question for any such day when MySQL will do something different to SQL Server. So I threw a vote to reopen the question (with a clearly wrong answer).
上述MyISAM优化同样适用于
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
所以真正的答案是他们是always相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)