Библиотека баз данных
10.4K subscribers
198 photos
7 videos
27 files
217 links
Самая большая библиотека бесплатных книг по SQL

По всем вопросам- @haarrp

@ai_machinelearning_big_data - machine learning

@pythonl - Python

@itchannels_telegram - 🔥 best it channels

@ArtificialIntelligencedl - AI

РКН:  № 5037640984
Download Telegram
SQL-совет 💡

Если в запросе используется IN (subquery) - почти всегда выгоднее заменить его на EXISTS.

Часто медленно:


SELECT *
FROM orders o
WHERE o.user_id IN (
SELECT u.id FROM users u WHERE u.country = 'US'
);


Обычно быстрее и безопаснее:

SELECT *
FROM orders o
WHERE EXISTS (
SELECT 1
FROM users u
WHERE u.id = o.user_id
AND u.country = 'US'
);


Почему это важно:
- IN может материализовать подзапрос целиком
- EXISTS работает как semi-join и рано останавливается
- Лучше масштабируется на больших данных
- Меньше сюрпризов с NULL

Особенно критично в PostgreSQL, MySQL и Oracle на больших таблицах.
👍53🔥2🤔1