Долго выполняется JOIN

  • Автор темы Автор темы _RVK_
  • Дата начала Дата начала
Diesel
Дело в том что твои запросы с RIGHT JOIN и LEFT JOIN не индентичны.
 
Дело в том что твои запросы с RIGHT JOIN и LEFT JOIN не индентичны
Я понимаю. Мой первый запрос должен вернуть мне не то что я имел ввиду. Но он верен синтаксически и логически, в таблице есть все необходимые индексы, но он тем не менее завис. Завис потому что Mysql не стала использовать индексы, которые есть в таблице. Я не могу понять такого поведения.
Ну ладно. Все работает,а в следующий раз буду внимательней следить за порядком связывания таблиц.
 
Автор оригинала: Diesel
Sad Spirit
Покажи пример когда необходимо использовать RIGHT. Это будет лучшим ответом на вопрос.
Какой ещё вопрос? Я как раз имел в виду, что особой разницы между ними нет.

Иногда удобнее записывать так, иногда --- эдак. И советы использовать обязательно что-то одно вызывают смех.
 
Sad Spirit
Такие советы даю не только я но и разработчики MySQL.

Diesel
Это не мускул не использовал индексы, а ты не дал ему такой возможности.
 
а ты не дал ему такой возможности
Где я ему не дал? Я пытаюсь представить себе порядок связывания и прихожу к выводу что индексы вполне можно использовать. Но видимо я чего то не понимаю в самом механизме, поэтому и прошу объяснить.
 
Diesel

RIGHT JOIN catalog_prices ON (catalog_tree.cid=catalog_prices.fk_catalog_tree)

Вторая таблица связывается с третей, с первой же у нее никакой связи нету, какие могут быть индексы?
 
Ага, значит порядок таков.
1. с+b
2. (с+b)+a

Так?

Я то думал,что
1. b+a
2. с+(a+b)

Я правильно понял?
 
Тю блин, експлаин же показывает таблицы в порядке использования. Теперь мне все понятно! Сенк.
 
Сверху