Оптимизация запросов к базе данных SQL для статистики посетителей веб-страниц - PullRequest
0 голосов
/ 27 сентября 2010

Я пытаюсь построить анализатор веб-журнала на основе журнала tomcat.

И я сначала помещаю журнал в базу данных, затем делаю статистику.

Теперь я сталкиваюсь с проблемой:

Для заданного диапазона данных, например (с 2010-09-20 по 2010-09-25), мне нужно рассчитывать посетителей по дням, поэтому сначала я делю диапазон данных по дням:


Split:(2010-09-20,2010-09-25) to 

(2010-09-20 00:00:00, 2010-09-21 00:00:00),
(2010-09-21 00:00:00, 2010-09-22 00:00:00),
(2010-09-22 00:00:00, 2010-09-23 00:00:00),
(2010-09-23 00:00:00, 2010-09-24 00:00:00),
(2010-09-24 00:00:00, 2010-09-25 00:00:00),

Затем я использую sql для запроса количества посетителей каждого диапазона.

Например:

select count(distinct ip) from log 
where time between 201009200000 and 201009210000 
group by ip.

Этот sql используется для подсчета посетителей 2010-09-20.

Так что, если диапазон данных из пользовательского запроса охватывает более одного дня, я должен подключаться к базе данных более одного раза. это низкая эффективность?

Есть решение?

BWT, я использую MySQL.

1 Ответ

0 голосов
/ 27 сентября 2010

Вы начинаете с составления таблицы (дней) со всеми днями в году.

например. выберите количество (отличный ip), day.starttime из журнала дни внутреннего соединения в log.time между day.starttime и day.endtime где log.time между 201009200000 и 201009210000 группировка по ip, day.starttime

или что-то в этом роде

...