хочу выбрать всех подписчиков, у которых канал соответствует определенному признаку самым эффективным способом
Спросил у GPT что эффективнее - JOIN или EXISTS, говорит EXISTS
Делаю запрос SELECT * FROM subscribers WHERE NOT EXISTS ( SELECT * FROM channels WHERE subscribers.channel_id = channels.id AND channels.abc != 111 ) - выполняется 20 секунд
Делаю запрос с join - выполняется 1 сотую секунды
Почитал подробнее про джойны - говорят проблемы могут начать вылезать на больших объемах данных (сейчас у меня всего 2млн строк)
Что я делаю не так? Может есть вариант ещё проще?
Спроси ещё у мужиков в гараже, ОНИ ТОЧНО ЗНАЮТ!
😂 Вы те самые мужики из гаража, у вас и спрашиваю
Что ты делаешь не так: слушаешь мужиков из интернета. А надо слушать МУЖИКОВ ИЗ ГАРАЖА!
А откуда тут not exists вдруг появился ?
Нашел запрос на просторах интернета, сам удивился. Пробовал и exists с = и not exists с != - второй справляется быстрее на 20% Может быть он закешировал результат, может быть я не понимаю как это работает)
Обсуждают сегодня