SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.07.2009 15:18:08

Abyrvalg
Участник
Зарегистрирован: 10.07.2009
Сообщений: 1

Индекс для запроса, считающего сумму

Привет тебе, о несокрушимый All!

Есть, к примеру, вот такой запрос:

Код:

SELECT host, SUM(srv_bytes), SUM(clt_bytes) FROM `hosts` WHERE clt_ip='192.168.0.232' and ts>='904010000' and ts<'905010000' group by host order by SUM(srv_bytes) desc

Сей запрос весьма грузит SQL-сервер, поскольку приходится перелопачивать очень много данных в таблице. Хочу облегчить жизнь за счёт создания индексов. Но не знаю, какой индекс тут создать, и особенно - имеет ли смысл индексировать столбец srv_bytes? Как проиндексировать сумму значений и имеет ли это смысл? Имеют ли вообще смысл индексы в этой ситуации? Может быть, вопросы тупые, но я пока не разобрался в логике их работы.

Неактивен

 

#2 10.07.2009 17:25:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Индекс для запроса, считающего сумму

Для конкретно этого запроса нужен индекс на (clt_ip, ts). Дополнительные поля туда добавлять
бесполезно, т.к. по ts уже будет range.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson