Встречается на собеседованиях • сегодня
Какие условия нельзя делать в where
В SQL (и в ORM типа Django ORM или SQLAlchemy) есть несколько условий, которые не стоит использовать в WHERE:
- Функции над колонками – например,
WHERE LOWER(column) = 'value'не использует индекс. Лучше хранить данные в нужном регистре.
-
Не-SARGable условия – например,
WHERE column LIKE '%substring%'(ведущий%). ИспользуйтеLIKE 'substring%'для индексов. -
Сравнение разных типов – например,
WHERE string_column = 123может привести к неявному приведению типов и плохой производительности. -
OR с разными колонками –
WHERE col1 = 'x' OR col2 = 'y'часто хуже, чем два отдельных запроса сUNION ALL.
Пример плохого условия:
sql
SELECT * FROM users WHERE DATE(created_at) = '2023-01-01';Лучше:
sql
SELECT * FROM users
WHERE created_at >= '2023-01-01' AND created_at < '2023-01-02';
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы