@reaper666

Как ускорить выполнение запроса?

Есть следующая таблица

| squidcache | CREATE TABLE `squidcache` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`LOG_DATE` date DEFAULT NULL,
`LOG_TIME` time DEFAULT NULL,
`HOST` varchar(50) DEFAULT NULL,
`METHOD` varchar(50) DEFAULT NULL,
`URL` varchar(200) DEFAULT NULL,
`total_bytes` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `log_date` (`LOG_DATE`)
) ENGINE=InnoDB AUTO_INCREMENT=9413436 DEFAULT CHARSET=utf8

В таблице в районе 9 млн строк и их количество будет увеличиваться.
Есть следующий запрос, который выполняется в районе 30 секунд.
select sum(total_bytes) as url_size,url from squidcache where log_date between '2019-06-01' and '2019-06-30' group by url order by url_size desc


Сначала я попробовал выбирать чисто диапазон данных за период без группировки и суммирования. Запрос выполнялся 10 секунд, после построения индекса на log_date запрос выполняться стал выполняться за 0.02 секунды. Но конкретно этот запрос выполняется также в районе 30 сек. Подскажите, как правильно ускорить выполнение запроса, мб я индексы не те строю, или запрос вообще неправильный в плане скорости работы?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы