Przechowywanie statystyk w bazie mysql/pliku

0

Potrzebuje porady.
Chciałbym zapisywać statystyki odwiedzin (załóżmy podstron). W jaki sposób to zorganizować?
W bazie stworzyć 366 kolumn dla każdego dnia? I dopisywać po +1 przy obecnym dniu wywołaniu podstrony?
Chodzi także aby można było później wygodnie przeglądać statystyki, z tygodnia miesiąca.. itd.

Mam też inny pomysł można by zrobić tylko jedną kolumnę w której zapisujemy liczbę odwiedzin, a o godzinie 0:00 za pomocą cron'a wysyłamy wartość z całego dnia do pliku (każda podstrona ma swój plik ze statami) (w bazie zerujemy, bo nowy dzień) i tam te statystyki z zakończonych dni sobie siedzą, do czytania.
Tylko że jak będzie 10000 podstron to trochę to potrwa, zamuli, albo serwer ubije ;/

Jak to zorganizować?

0

Utwórz jedną tabelę z datą, podstroną i ilością odwiedzin. Jak przy 10 tysiącach podstron po roku zrobi ci się kilka milionów rekordów i zauważysz spadek wydajności to możesz je wtedy zarchiwizować.

Ze strony mysql:

Scalability and Limits:
Support for large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 200,000 tables and about 5,000,000,000 rows.

0

A nie lepiej z logów serwera web pobrać takie informacje?
Jeśli jednak chcesz tabelkę, zrób jak radzi Rev.
Oczywiście data+podstrona+liczba odwiedzin daje ci granulację na poziomie dnia, jeśli chcesz na poziomie godzin/minut, to lepiej zrób datetime+podstrona (najlepiej jakiś identyfikator, a nie sciezka). Liczba rekordów będzie szybko rosła (tzn. szybciej niż w propozycji Rev), ale to tylko tabela do zbierania statystyk, nie do analizy danych. Zrób tą tabelę bez żadnych indeksów, bo do niej będziesz tylko wstawiał rekordy. Po jakimś czasie zabierasz tabelkę, czy jakąś partię danych "na bok" i w tej tabelce "na boku" stwórz sobie ewentualne indexy przydatne do szybszej obróbki danych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1