![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 21.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem logistyczny z systemem statystyk. Chciałbym stworzyć dla każdej strony z osobna statystyki odwiedzin uwzględniające: datę i godzinę wejścia, geolokalizację adresu IP, przeglądarkę klienta oraz jego system operacyjny. Tak przygotowane dane mają być przechowywane w bazie, a następnie wyświetlane na stronie w formie wykresu. Tu niestety rodzi się pytanie: w jakiej formie najlepiej zapisywać dane w bazie? Pierwsze co przyszło mi na myśl, to zapisywać każde wejście w osobnym rekordzie, co jednak zrodziło moje wątpliwości - co się stanie, jeśli przykładowo w ciągu dnia na stronę wejdzie 10.000 osób, a każda z nich będzie przechodziła pomiędzy podstronami średnio 10 razy? To daje nam w przeciągu miesiąca 3 mliony odświeżeń strony, a w ciągu roku 36 milionów. Zatem po roku w celu wygenerowania wykresu ze statystykami odwiedzin, będę musiał pobrać z bazy 36 milionów rekordów co jest raczej niewykonalne. Oczywiście wariant z 36 milionami jest trochę przesadzony, ale taka sytuacja jest możliwa. Jak zatem najlepiej zapisywać tego typu dane w bazie? Jak to robi np. google ze swoimi statystykami (pomijając superwydajne serwery)? Nigdy czegoś takiego nie robiłem, więc proszę o pomoc. Interesuje mnie wyłącznie technologia PHP i MySQL - nic poza tym nie wchodzi w grę. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Najprościej:
Jakiś system kolejkowania (np *MQ) ==> ElasticSearch - da Ci to super skalowalność i bardzo wysoką wydajność. Zależy też co chcesz robić dalej z tymi danymi, bo może zamiast ES spodobał by Ci się HBase (i możliwości "współpracy" z Hadoopem). Poczytaj o MongoDB - w Twoim przypadku to bardzo zły wybór. Prawdopodobnie nie użyjesz żadnych jego zalet a dodatkowo Cię ograniczy (IMG:style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 11:16 |