Check if MySQL Table is empty: COUNT(*) is zero vs. LIMIT(0,1) has a result?

This is a simple question about efficiency specifically related to the MySQL implementation. I want to just check if a table is empty (and if it is empty, populate it with the default data) . Would it be best to use a statement like SELECT COUNT(*) FROM 'table' and then compare to 0, or would it be better to do a statement like SELECT 'id' FROM 'table' LIMIT 0,1 then check if any results were returned (the result set has next)?

Although I need this for a project I am working on, I am also interested in how MySQL works with those two statements and whether the reason people seem to suggest using COUNT(*) is because the result is cached or whether it actually goes through every row and adds to a count as it would intuitively seem to me.


It is better to do the second method or just exists . Specifically, something like:

if exists (select id from table)

should be the fastest way to do what you want. You don't need the limit ; the SQL engine takes care of that for you.

By the way, never put identifiers (table and column names) in single quotes.

链接地址: http://www.djcxy.com/p/78572.html

上一篇: AspNet Identity 2.0电子邮件和用户名重复

下一篇: 检查MySQL表是否为空:COUNT(*)为零与LIMIT(0,1)有结果?