Kod
+---------+--------------+---------+--------------+---------+
| id | ip | time | user_agent | count |
| int(11) | varchar(255) | int(11) | varchar(255) | int(11) |
+---------+--------------+---------+--------------+---------+
| id | ip | time | user_agent | count |
| int(11) | varchar(255) | int(11) | varchar(255) | int(11) |
+---------+--------------+---------+--------------+---------+
gdzie time przechowuje czas odwiedzin (unix timestamp) a count jest inkrementowane, jeśli ten sam IP odwiedza stronę w tym jednym przedziale czsowym. Każdy przedział czasowy ma długość jednej godziny, np. 11:30 - 12:30.
Teraz jeśli chcę pobrać dzienną sumę nieunikalnych wyświelteń:
SELECT SUM(count) AS views FROM `log_views` WHERE time >= POCZATEK_DNIA AND time < POCZATEK_DNIA + 86400
W przypadku, kiedy chcę wykonać godzinowe zestawienie z danego dnia, muszę wykonać 24 analogiczne zapytania, dla każdego przedziału czasowego jedno. W przypadku zestawienia miesięcznego 31 (zależy...) zapytań dla każdego dnia w miesiącu.
Po jakimś czasie danych zacznie przybywać (nie żeby jakoś ekstremalnie szybo

Muszę też dodać, że z tych statystyk korzystać bedzie tylko jeden / kilku administratorów i sądzę, że nie będą siedzieć i odświeżać strony wyświetlającej w.w. statystyki bez końca (i podziwiać wykresów z google chart api).
Mam jeszcze jedno pytanie. W jaki sposób rośnie czas dostępu do danych w MySql'u w zależności od ilości danych?