Подтвердить что ты не робот

Проверить значение, если оно существует в столбце

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

Теперь у меня есть следующее:

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

Ответ 1

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

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

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