最快的查询,看它是否至少返回一行

dyn*_*mic 5 mysql sql query-optimization

我只需要知道查询是否返回记录.

我当然可以这样做:

SELECT COUNT(*) FROM tbl WHERE conds;
Run Code Online (Sandbox Code Playgroud)

但是这会返回确切的行数(当然),而且我不需要这个开销.

所以我想到了这个问题:

SELECT COUNT(*) FROM (SELECT id FROM tbl WHERE conds LIMIT 1) as t1
Run Code Online (Sandbox Code Playgroud)

将内部查询限制为1.

这更快吗?或者考虑到我正在做一个子查询它取消了它的好处LIMIT 1

注意:对于每个问自己的人,我都不能申请LIMIT 1第一个查询,因为它不起作用

ajr*_*eal 7

第二个查询中的内部选择是多余的.
如果您只想检查至少一行: -

SELECT 1 FROM tbl  // return 1
WHERE conds        // depends on your index and query
ORDER BY NULL      // avoid file-sort
LIMIT 1;           // minimum row
Run Code Online (Sandbox Code Playgroud)