Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Почему так медленно?! (Александр) 26/11/2005 - 08:20:34
      Re: Почему так медленно?! (Dubrovsky) 26/11/2005 - 14:33:22
      Re: Почему так медленно?! (Александр) 26/11/2005 - 15:28:05
      Re: Почему так медленно?! (Александр) 26/11/2005 - 15:57:20
      Re: Почему так медленно?! (Dubrovsky) 26/11/2005 - 19:32:37
      Re: Почему так медленно?! (Dinky) 26/11/2005 - 20:39:34
      Re: Пардон (Dubrovsky) 27/11/2005 - 00:26:41
      Re: Пардон (Александр) 27/11/2005 - 12:44:19
      Re: Сорри (Александр) 27/11/2005 - 12:47:36
      Re: Пардон (Dinky) 28/11/2005 - 06:45:53
      Re: Вложенный запрос? (Александр) 28/11/2005 - 09:10:38
      Re: Вложенный запрос? (Dinky) 28/11/2005 - 18:47:24

> Original message text:
> From: Александр - 26/11/2005 - 08:20:34
> Subject:Почему так медленно?!
> -----------------
> Делаю запрос:
> - - - -
> SELECT doc.url, doc.header,
> MAX(com.date) as date
> FROM document AS doc
> JOIN comment AS com ON doc.id=com.document
> GROUP BY doc.id
> ORDER BY date DESC
> LIMIT 5
> - - - -
> Выполняется долго. Около 0,5-0,8 секунд на мощной машине!
> Если убираю MAX - выполняется за 0,1-0,2 сек., тоже долго.
> Убираю еще GROUP - начинает летать, но показывает не то, что нужно. Смысл выбрать из одной таблицы дату последнего комментария, а из другой - соответствующий документ (его url и header)
>
> Подскажите, где "собака порылась"? Что делаю не так?
>


From: Александр - 27/11/2005 - 12:44:19
Subject:Пардон
-----------------
Спасибо за EXPLAIN :)

Запрос я немного усложнил:
- - - -
SELECT
doc.url, doc.header,
MAX( com.id ) AS cid, MAX( com.date ) AS date, com.body, rub.url_full,
usr.login, usr.name
FROM rucanada_document AS doc
JOIN rucanada_comment AS com ON doc.id = com.document
JOIN rucanada_rubric AS rub ON doc.rubric = rub.id
JOIN rucanada_user AS usr ON com.author = usr.id
GROUP BY doc.id
ORDER BY date DESC
LIMIT 5
- - - -

Выполняется локально на денвере за 0,20-,21 сек. Мне как пароноику со стажем опять кажется что слишком медленно. Имхо запрос должен быть выполнен не более, чем 0,05 сек.

Вот что explain думает по этому поводу:
- - - -
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE doc index PRIMARY PRIMARY 3 NULL 11 Using temporary; Using filesort
1 SIMPLE com ref document document 3 rucanada.doc.id 4487
1 SIMPLE rub eq_ref PRIMARY PRIMARY 2 rucanada.doc.rubric 1
1 SIMPLE usr eq_ref PRIMARY PRIMARY 3 rucanada.com.author 1
- - - -

Ха! На сервере же от valuehost запрос опять летает - 0,56 (это с учетом всех остальных обращений к базе и генерации html, правда, тут чуток gzip спасает). Но запись в comment'ах там всего одна. А дома я тестирую пока на 50000. Если есть такая зависимость от кол-ва, значит, я по-прежнему что-то не так делаю. :(


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
25334



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |