2011-11-16 125 views
10

我想知道如何在查詢特定表中的列中存在varchar值時如何最大限度地提高速度。我不需要知道它在哪裏,或者有多少次出現,我只想要一個true/false。當然,該列有一個索引。檢查值是否存在列

現在,我有這樣的:

SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1); 
+0

對於檢查如果列名存在,看到http://stackoverflow.com/a/10636439/287948 –

回答

13

EXISTS通常應儘快返回的子查詢發現一行滿足其WHERE子句。所以我認爲你的查詢速度可以達到你想要的速度。

我有點驚訝,LIMIT 1似乎總是加快查詢非常輕微。我沒有想到。您可以通過EXPLAIN ANALYZE查看效果。

EXPLAIN ANALYZE 
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1); 
+0

你能告訴我查詢是如何常用於此(檢查是否存在與最大速度) – Perlos