我正在寻找检查该条目存在的最快方法......
我的一生,我做过这样的事......
SELECT COUNT(`id`) FROM `table_name`
有些人不使用COUNT(id)
,而是COUNT(*)
。那更快吗?
LIMIT 1
怎么样?
P.S。当然,id
我指的是主键。
感谢您的建议!
答案 0 :(得分:7)
在大多数情况下,COUNT(*)
比MySQL中的COUNT(id)
快(因为执行COUNT()
的分组查询的方式如何,可能会在将来的版本中进行优化,因此两个版本都运行相同)。但是,如果您只想查找是否存在至少一行,则可以使用EXISTS
简单:
( SELECT COUNT(id) FROM table_name ) > 0
快一点:
( SELECT COUNT(*) FROM table_name ) > 0
快得多:
EXISTS (SELECT * FROM table_name)
答案 1 :(得分:5)
如果您不担心准确性,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)