@KarambyG

Как правильно делать JOIN таблиц?

Подскажите люди добрые. Есть ли разница джоинов этих двух строк, с точки зрения нагрузки на БД?
SELECT... FROM `content` JOIN `likes`
SELECT... FROM `likes` JOIN `content`

У меня такой вопрос возник, потому что у меня есть связь многие ко многим, и для этого создана третья промежуточная таблица. Так как лучше быть. Селектить промежуточную таблицу, и к ней Джоинить 2 остальные? Или джоинить лучше промежуточную?

И второй аналогичный вопрос. Если таблицы соеденяются так:
ON content.id=likes.id_content, то как лучше всего использовать WHERE content.id=$id или WHERE likes.id_content=$id ?

Я понимаю, что и там и там результат будет одинаков. Но я имею ввиду есть ли разница с точки зрения нагрузки на БД.
  • Вопрос задан
  • 359 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Есть ли разница джоинов этих двух строк, с точки зрения нагрузки на БД?

Оба запроса - INNER JOIN. Если не используется STRAIGHT_JOIN, то сервер гарантированно построит для обоих запросов один и тот же план выполнения.

Более того, если Вы почитаете внимательно, как именно сервер выполняет и оптимизирует запросы, то узнаете, что сервер фактически оба этих запроса приводит к картезианскому произведению с отбором. Вернее, препроцессинг выглядит так, словно сервер выполняет такое приведение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы