daG*_*vis 6 mysql performance exists count
我正在寻找检查条目存在的最快方法...
我的一生,我做过这样的事......
SELECT COUNT(`id`) FROM `table_name`
Run Code Online (Sandbox Code Playgroud)
有些人不使用COUNT(id),但是COUNT(*).那更快吗?
怎么样LIMIT 1?
PS id当然,我指的是主键.
谢谢你的建议!
在大多数情况下,COUNT(*)比COUNT(id)在MySQL中更快(因为如何COUNT()执行分组查询,它可能在将来的版本中进行优化,因此两个版本都运行相同).但是,如果您只想查找是否存在至少一行,则可以使用EXISTS
简单:
( SELECT COUNT(id) FROM table_name ) > 0
Run Code Online (Sandbox Code Playgroud)
快一点:
( SELECT COUNT(*) FROM table_name ) > 0
Run Code Online (Sandbox Code Playgroud)
快多了:
EXISTS (SELECT * FROM table_name)
Run Code Online (Sandbox Code Playgroud)
如果你不担心准确性,那就explain select count(field) from table太快了.
http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/
此链接解释了count(*)和之间的区别count(field).有疑问时,count(*)
至于检查表是不是空的...
SELECT EXISTS(SELECT 1 FROM table)
| 归档时间: |
|
| 查看次数: |
4456 次 |
| 最近记录: |