7 месяцев назад
⚡️ Почему OR в SQL — это скрытый убийца производительности
На первый взгляд, оператор OR в SQL кажется безобидным. Нужен фильтр по нескольким условиям? Просто напиши: select count(*) from application where submitter_id = :user_id or reviewer_id = :user_id; Но в реальности такой запрос может оказаться в 100 раз медленнее, чем переписанный на UNION или два подзапроса. И это не баг, а фундаментальная особенность работы планировщиков запросов. Дело в том, что: ⚡️ AND уменьшает количество данных, сузив выборку. 💥 OR расширяет набор данных, заставляя движок либо делать дорогое объединение, либо идти в полный скан таблицы...