[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: И снова помогите с запросом
dima4321
ссори за навязчивость.) Краснею как могу честно ))

появилась необходимость привязать еще одну таблицу , условие то же.

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 smile.gif

Спустя 12 часов, 12 минут, 22 секунды (21.02.2011 - 09:58) linker написал(а):
Расставляем индексы правильно и избавляемся от подзапросов.

Спустя 27 минут, 30 секунд (21.02.2011 - 10:25) dima4321 написал(а):
linker

А где ты увидел подзапросы в моем коде ??))

Что ты имел ввиду ?


_____________
Работаю за еду ! __))
И за плюсики !
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.