Сообщество / Новая тема

Обсуждение статьиПервый комментарий откроет обсуждение — дальше все вопросы по этой статье будут собираться здесь

Об статье:
Три способа выполнить один JOIN и почему база выбирает не тот, что вы ждали

Вы написали JOIN двух таблиц, посмотрели EXPLAIN и не узнали план: там, где вы ждали быстрый проход по индексу, база построила хеш-таблицу и просканировала всё целиком. Первая мысль — оптимизатор сломан. На практике почти всегда наоборот: у соединения таблиц есть три классических алгоритма выполнения, и планировщик честно выбрал тот, что показался ему дешевле по его оценке данных. Разберёмся, как устроены эти три способа и почему "неожиданный" выбор почти никогда не баг.

Подробнее →