我想知道在查询特定表的列中是否存在varchar
个值时,如何最大限度地提高速度.我不需要知道它在哪里,或者发生了多少次,我只想要一个true
/false
.当然,该列有一个索引.
现在,我有这个:
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
我想知道在查询特定表的列中是否存在varchar
个值时,如何最大限度地提高速度.我不需要知道它在哪里,或者发生了多少次,我只想要一个true
/false
.当然,该列有一个索引.
现在,我有这个:
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
通常,只要子查询找到满足WHERE子句的一行,EXISTS就会返回.所以我认为你的查询速度是最快的.
我有点惊讶,LIMIT 1
似乎总是略微加快查询速度.我没想到.你可以看到EXPLAIN ANALYZE
的效果.
EXPLAIN ANALYZE
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);