|
|
|
|
|
для: cheops
(11.03.2011 в 19:39)
| | ок, спасибо, буду тестировать | |
|
|
|
|
|
|
|
для: TetRiska
(11.03.2011 в 19:29)
| | Если колеблется, значит уже не от скрипта скорость зависит, а от нагрузки машины - загоняйте запросы в циклы, чтобы время поточнее оценивать. | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 19:17)
| | уже реже чем 94мс стало выполнятся...колеблется от 63мс до 94мс | |
|
|
|
|
|
|
|
для: TetRiska
(11.03.2011 в 19:02)
| | Скорость не изменилась? По прежнему 94мс? Кстати, имеются в виду микро или милисекунды (может уже ограничение в подсчете времени и точно у этих значений скорость уже не измерить)?
PS Ключи используется, по сравнению с первым запросом мы перевели полностью его на объединения, даже избавились от WHERE-конструкции. Индексы тоже вроде все в наличии. | |
|
|
|
|
 97.9 Кб |
|
|
для: cheops
(11.03.2011 в 18:40)
| | EXPLAIN поставил в самом начале запроса перед селект...см. приложение | |
|
|
|
|
|
|
|
для: TetRiska
(11.03.2011 в 18:37)
| | Можно (смотрите ниже), но дело не в JOIN-ах и вложенных запросах, а в том, чтобы подцепить индексы, а они судя по всему почему-то не подцепляются. Поставьте перед SELECT-запросом ключевое слово EXPLAIN - посмотрите, что он сообщает.
SELECT
p.`em_partner_file`,
p.`em_partner_title`
FROM
(SELECT * FROM `em_partner_block`
WHERE em_partner_access='y' AND
em_partner_deleted='n') AS p
JOIN `em_category` c
ON (p.`em_category_id`=c.`em_category_parent_id`)
JOIN `em_category` cp
ON (p.em_category_id = cp.em_category_parent_id AND cp.em_category_id = 40)
GROUP BY
p.`em_partner_id`
ORDER BY
p.`em_partner_sort` ASC
|
| |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 18:00)
| | Время аналогичное. А нельзя ли сделать полостью на джоинах? А то вложенные запросы как говорилось замедляют исполнение. Насчет дампа - с данными что ли? | |
|
|
|
|
|
|
|
для: TetRiska
(11.03.2011 в 17:47)
| | А теперь попробуйте вот такой запрос - у него время уменьшается?
SELECT
p.`em_partner_file`,
p.`em_partner_title`
FROM
(SELECT * FROM `em_partner_block`
WHERE em_partner_access='y' AND
em_partner_deleted='n') AS p
JOIN `em_category` c
ON (p.`em_category_id`=c.`em_category_parent_id`)
WHERE
p.em_category_id = (
SELECT
em_category_parent_id
FROM
`em_category`
WHERE
em_category_id = 40
)
GROUP BY
p.`em_partner_id`
ORDER BY
p.`em_partner_sort` ASC
|
PS Вообще бы, конечно, полный бы дамп - с ним повозиться, так как EXPLAIN у меня жалуется на отсутствие данных, не понятно какой индекс используется, а какой нет. | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 17:47)
| | на сервере удаленно | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 17:42)
| | да никак, 94мс так и осталось | |
|
|
|
|