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