VladimirZhid
@VladimirZhid
Нравится делать что-то интересное и полезное.

Почему может просто зависнуть запрос?

Всем Хай!
Подскажите, почему может зависнуть этот запрос? Что-то вообще не догоняю:
SELECT COUNT(*) FROM gen_lenta WHERE lenta_id NOT IN (SELECT id FROM lenta_bundle)

Зависает именно из-за NOT IN;
  • Вопрос задан
  • 1280 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ollisso
SELECT COUNT(*)
FROM gen_lenta
left join lenta_bundle on lenta_bundle.id=lenta_id
where lenta_bundle.id is not null

Попробуйте такой способ. Обычно работает намного быстрее чем ваш подход.

Так же стоит проверить что у вас есть индексы на все нужные поля
Ответ написан
zoroda
@zoroda
Необычный Fullstack
Конструкцию NOT IN лучше применять, если подзапрос возвращает менее десятка-двух записей. Эта конструкция при большом объёме данных сжирает кучу ресурсов, в том числе и оперативной памяти.
Используйте подход Oleg или конструкцию NOT EXISTS
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы