TGViewer
SQL Portal | Базы Данных SQL Portal | Базы Данных @sqlportal · 13.7K subscribers
Post #1787 1.56K
🚫 НИКОГДА не используй COUNT для проверки существования
Если тебе нужно просто проверить, существует ли конкретный элемент в данных, не используй COUNT() с фильтром (WHERE).

SELECT COUNT(*)
FROM users
WHERE email = 'http://thisemaildontexist.com'


Проблема в том, что COUNT(*) отвечает на другой вопрос. Он считает количество строк, которые удовлетворяют условию, хотя тебе нужно только знать, есть ли хотя бы одна.
Когда ты используешь COUNT(*), база данных может просканировать все подходящие строки, чтобы вычислить итог. Даже если она найдёт одно совпадение сразу, она может продолжить работу, потому что ты запросил полный подсчёт. Это лишняя работа при больших таблицах.

Вместо COUNT() используй EXISTS
SELECT EXISTS (
SELECT 1
FROM users
WHERE email = 'http://thisemaildontexist.com'
);


С EXISTS база данных остановится, как только найдёт первое совпадение. Без подсчёта. Без лишнего сканирования.

👉 @SQLPortal
  • 👍 8
More from @sqlportal
  1. Oct 11, 2026SQL: порядок написания ≠ порядок обработки Запрос начинается с SELECT, но логически обраба…
  2. Oct 10, 2026Какие навыки нужны дата-инженеру? В вакансиях прослеживается закономерность: на первом мес…
  3. Oct 10, 2026Бэкап есть? А если найду? 😳 👉 @SQLPortal
  4. Oct 9, 2026Горизонтальные или вертикальные столбцы: что выбрать? Оба варианта помогают сравнивать кат…
  5. Oct 9, 2026Оконные функции SQL: аналитика без потери отдельных строк В отличие от GROUP BY, оконные ф…
  6. Oct 8, 2026DBcooper — лёгкий клиент для работы с базами данных Open-source-приложение на Tauri, Rust…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →