Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
IT и технологии · 11 мая 2026 г.
⚠️ Антипаттерн: использовать NULL без оглядки — 11 мая 2026 г. в 08:50:14.964
⚠️ Антипаттерн: использовать NULL без оглядки На первый взгляд NULL — это просто “нет значения”. Но в реальности — это тихий саботаж: 🔸 NULL != NULL. Да-да, сравнение NULL = NULL даст false или unknown. Это ломает привычную логику и может убить фильтры. 🔸 Агрегации ведут себя странно. COUNT(column) не считает NULL'ы. AVG, SUM — тоже их игнорируют. Итог: неверная статистика. 🔸 Индексы и WHERE column IS NULL. Не все СУБД эффективно используют индексы при таких запросах. Можно словить тормоза. 🔸 NOT IN + NULL = 💥. Запрос WHERE id NOT IN (subquery) может вернуть пустой результат, если в подзапросе есть хотя бы один NULL. 💡 Как избежать проблем: 1. Всегда осознанно работай с NULL — используй IS NULL и IS NOT NULL, не = и !=. 2. По возможности избегай NULL в колонках, где это не нужно. Лучше использовать значения по умолчанию. 3. Добавляй проверки в коде: COALESCE, IFNULL, NVL и аналоги. 4. Понимай, как твоя СУБД работает с NULL в индексах и фильтрах. 🎯 Вывод: NULL — не пустота, а “неизвестность”. Обращайся с ним осторожно, иначе баги будут неявными и неприятными. Сохрани, чтобы не отловить баг на проде 🐛 #db 👉 @database_info

