Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

JOIN LEFT оптимизация

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#1
за время своего знакомства с WEB я понял что оптимизация SQL запросов, особенно сложных запросов и особенно хорошая оптимизация дело такое же сложное как хакерство. Я имею виду хорошее хакерсто. Я сам лично не очень знаком с оптимизацией но когда на глаза попадается интересная статейка я ее обязательно читаю, чтобы если вдруг понадобится, я знал как что сделать. Вот и как то раз я читал статью в которой говорилось о том что при JOINах имеет значение в каком порядке ставить значения при сравнении, то есть
SELECT a.`id` AS track_id, b.`path` AS path FROM `tracks` a 
LEFT JOIN `tracks_meta` b ON b.`track_id` = a.`id`
LEFT JOIN `albums` c ON c.`id` = a.`album_id`
WHERE c.`active` = '1'
и
SELECT a.`id` AS track_id, b.`path` AS path FROM `tracks` a 
LEFT JOIN `tracks_meta` b ON a.`id` = b.`track_id`
LEFT JOIN `albums` c ON a.`album_id` = c.`id`
WHERE c.`active` = '1'
.albums - 128000 записей
.tracks - 300000 записей
.tracks_meta - 300000 записей
якобы отработают за разное время. Я имею виду значительно разное. Но я протестил и нифига :(
Это мои таблицы а не со статьи, в статье приводились абстрактные примеры, а я вот на реальных таблицах потестил и не увидил результата от телодвижений. Собственно What a fuck? или как там)))) Кто разбирается, кто объяснит в чем дело?

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

Wiper

  • Заглянувший
  • Юзер
  • 11
  • Репутация:0 
  • Предупреждения: 0 
  • Регистрация:
    6 Окт 2010
#2
Drunya, там по ходу большая разница в размерах таблиц должна быть чтобы разница проявилась. ИМХО

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#3
Видимо так оно и есть. Даже если просто логически подумать. Хотя с другой стороны тогда должно иметь значение что к чему джоинить а не в каком порядке параметры сравнивать.

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)
1
Сейчас online: 199. Зарегистрированных: 0. Гостей: 199.