появилась необходимость привязать еще одну таблицу , условие то же.
tracklist.text
names.`id`=tracklist.`name_id`
$sql="SELECT names.`name`, names.`style`, history.`text`, tracklist.`text` FROM names LEFT JOIN history, tracklist ON names.`id` = history.`name_id`=tracklist.`name_id` and history.page = '1' and tracklist.page='1' ";
Не корректно.
Пишет
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/t00t/www/site7/public_html/55/admina.php on line 58
Спустя 1 час, 1 минута, 48 секунд (20.02.2011 - 13:43) dima4321 написал(а):
Ура нагггггггуглил
$sql="SELECT names.`name`, names.`style`, history.`text`, tracklist.`text_tracklist` FROM names
LEFT JOIN history ON names.`id` = history.`name_id` and history.page = '1'
LEFT JOIN tracklist ON names.`id` = tracklist.`name_id` and tracklist.page = '1'";
Спустя 5 минут, 18 секунд (20.02.2011 - 13:48) T1grOK написал(а):
На будущее, по возможности старайтесь избегать множественных соединений JOIN. Производительность очень сильно падает.
Спустя 34 минуты, 20 секунд (20.02.2011 - 14:23) sergeiss написал(а):
Цитата (T1grOK @ 20.02.2011 - 14:48) |
Производительность очень сильно падает. |
По моему опыту в Постгре, так оно и есть... Но для увеличения производительности можно и нужно делать подвыборки. По крайней мере в Постгре это очень сильно помогает :) То есть, я джойню не сами таблицы, а только что сделанные подвыборки. Количество обрабатываемых строк существенно меньше получается, быстрее работает. Да и колонки лучше указывать только те, что нужны.
Например, можно проверить скорость выборки для такого запроса и сравнить с исходным:
SELECT names.`name`, names.`style`, history.`text`, tracklist.`text_tracklist`
FROM names
LEFT JOIN (select `text`, `name_id` from history where `page` = '1' ) history ON names.`id` = history.`name_id`
LEFT JOIN (select `text_tracklist`, `name_id`from tracklist where `page`='1') tracklist ON names.`id` = tracklist.`name_id`
Если количество строк в подвыборках заметно меньше, чем общее количество строк в таблице, то тогда скорость выборки должна возрасти.
Спустя 5 часов, 6 минут, 17 секунд (20.02.2011 - 19:29) dima4321 написал(а):
Цитата (T1grOK @ 20.02.2011 - 10:48) |
На будущее, по возможности старайтесь избегать множественных соединений JOIN. Производительность очень сильно падает. |
Это для админской панели я делал..
Поэтому только я буду делать этот запрос и никто другой.
А разве можно поиметь точно такой же запрос как-то по-другому , чтобы данные были в одном результирующем массиве ??
Спустя 1 минута, 21 секунда (20.02.2011 - 19:30) dima4321 написал(а):
Цитата (sergeiss @ 20.02.2011 - 11:23) |
По моему опыту в Постгре, так оно и есть |
А что такое постгре ??
Спустя 2 часа, 15 минут, 17 секунд (20.02.2011 - 21:45) sergeiss написал(а):
dima4321 - Постгре - это PostgreSQL, конкурент MySQL
Спустя 12 часов, 12 минут, 22 секунды (21.02.2011 - 09:58) linker написал(а):
Расставляем индексы правильно и избавляемся от подзапросов.
Спустя 27 минут, 30 секунд (21.02.2011 - 10:25) dima4321 написал(а):
linker
А где ты увидел подзапросы в моем коде ??))
Что ты имел ввиду ?
А где ты увидел подзапросы в моем коде ??))
Что ты имел ввиду ?
_____________
Работаю за еду ! __))
И за плюсики !