检查列中是否存在值

Per*_*los 16 postgresql

我想知道在查询varchar特定表中列中是否存在值时如何最大化速度.我不需要知道它在哪里,或者有多少次出现,我只想要一个true/ false.当然,该列有一个索引.

现在,我有这个:

SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
Run Code Online (Sandbox Code Playgroud)

Mik*_*ll' 19

一旦子查询找到满足其WHERE子句的一行,通常应该返回EXISTS.因此,我认为您的查询速度与您的查询速度一样快.

我有点惊讶,LIMIT 1似乎总是非常轻微地加快查询速度.我没想到.你可以看到效果EXPLAIN ANALYZE.

EXPLAIN ANALYZE
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
Run Code Online (Sandbox Code Playgroud)