Проверьте значение, если существует в столбце - PullRequest
12 голосов
/ 16 ноября 2011

Я хотел бы знать, как максимизировать скорость при запросе наличия значения varchar в столбце конкретной таблицы. Мне не нужно знать, где он находится или сколько там случаев, я просто хочу true / false. Конечно, столбец имеет индекс.

Теперь у меня есть это:

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

1 Ответ

17 голосов
/ 16 ноября 2011

EXISTS обычно должен возвращаться, как только подзапрос находит одну строку, которая удовлетворяет своему предложению WHERE.Поэтому я думаю, что ваш запрос выполняется так быстро, как вы можете.

Я был немного удивлен, что LIMIT 1, кажется, всегда очень быстро ускоряет запрос.Я этого не ожидал.Вы можете увидеть эффект с EXPLAIN ANALYZE.

EXPLAIN ANALYZE
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...