за время своего знакомства с WEB я понял что оптимизация SQL запросов, особенно сложных запросов и особенно хорошая оптимизация дело такое же сложное как хакерство. Я имею виду хорошее хакерсто. Я сам лично не очень знаком с оптимизацией но когда на глаза попадается интересная статейка я ее обязательно читаю, чтобы если вдруг понадобится, я знал как что сделать. Вот и как то раз я читал статью в которой говорилось о том что при JOINах имеет значение в каком порядке ставить значения при сравнении, то есть
SELECT a.`id`AS track_id, b.`path`AS path FROM`tracks` a LEFTJOIN`tracks_meta` b ON b.`track_id` = a.`id` LEFTJOIN`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 LEFTJOIN`tracks_meta` b ON a.`id` = b.`track_id` LEFTJOIN`albums` c ON a.`album_id` = c.`id` WHERE c.`active` = '1'
.albums - 128000 записей
.tracks - 300000 записей
.tracks_meta - 300000 записей
якобы отработают за разное время. Я имею виду значительно разное. Но я протестил и нифига
Это мои таблицы а не со статьи, в статье приводились абстрактные примеры, а я вот на реальных таблицах потестил и не увидил результата от телодвижений. Собственно What a fuck? или как там)))) Кто разбирается, кто объяснит в чем дело?
Видимо так оно и есть. Даже если просто логически подумать. Хотя с другой стороны тогда должно иметь значение что к чему джоинить а не в каком порядке параметры сравнивать.