|
MySQL.RU - Webboard
Вернуться
Оптимизироватьзапрос (Aleksandr) 16/05/2011 - 11:30:12
Re: Оптимизироватьзапрос (Akina) 16/05/2011 - 12:58:58
Re: Оптимизироватьзапрос (Aleksandr) 17/05/2011 - 12:41:18
Re: Оптимизироватьзапрос (Akina) 17/05/2011 - 18:03:40
Re: Оптимизироватьзапрос (Akina) 17/05/2011 - 18:05:02
> Original message text:
> From: Aleksandr - 16/05/2011 - 11:30:12
> Subject:Оптимизироватьзапрос
> -----------------
> SELECT `content_id`, COUNT(*) AS cnt FROM `visited` WHERE `content_id`!='105' AND `session` IN
> (SELECT DISTINCT `session` FROM `visited` WHERE `content_id`='105')
> GROUP BY `content_id`
> ORDER BY `cnt` DESC
> LIMIT 0, 5
>
> Работает как надо, но ооочень долго
> 20к записей и по 400-500добавляется каждый день
> Понятное дело что результаты выборки проще хранить в отдельной таблице. Но даже сама выборка занимает много времени
> content_id - проиндексирован
>
From: Akina - 17/05/2011 - 18:03:40
Subject:Оптимизироватьзапрос
-----------------
2) Уберите в таком случае кавычки с констант - движку не придётся выполнять лишние приведения типов.
3) Создайте индекс по (session, content_id) и, если нужно, зафорсите его... на всякий случай попробуйте и обратный индекс (хотя мне кажется, этот порядок разумнее).
filesort никак не убрать - order by по агрегатке...
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
38451
|
|