Жила-была большая-пребольшая база, и была в ней таблица на 300 миллионами записей. Хранились в таблице складские данные,
и был в ней столбец deleted, в котором помечалось, если товар со склада перемещался в магазин. И графана с забиксом были
красные-красные, потому что приходил в базу запрос “а дай-ка мне товары, которые не перемещены в магазин”, в котором было
условие WHERE deleted IS NOT true.
Попробуем провести эксперимент.
Создадим таблицу из двух колонок и признака, удалена запись или нет
Сгенерируем 10 тысяч значений
Случайным образом выставим признак deleted
А одинаковый ли результат будет, проверим ?
А что с планами запросов ?
Вывод
`WHERE <что-то> IS NOT true" - плохо
"WHERE <что-то> IS false" - хорошо
(но надо не забыть создать индекс)что-то>что-то>