styryl
15.03.2010, 07:31:00
Witam
Mam małe pytanie a mianowicie:
Chce zrobić wyświetlanie na stronie kto jest w tym momencie online. I mam taki pomysł aby zrobić pole w bazie z użytkownikami np online_time i zapisywać tam czas ostatniego logowania i za każdym razem jak user gdzieś (oczywiście po zalogowaniu) kliknie to robić update w bazie danych. I wyświetlać userów np z ostatnich 10 minut.
I tutaj pytanie: czy ten sposób nie zajedzie mi bazy? Chodzi o obciążenie.
Czy jest jakiś inny sensowny sposób wykonania tego?
Pzdr
bogdan89
15.03.2010, 07:39:56
Twój sposób jest sensowny i nie obawiaj się o przeciążenia bazy... zwykle dobre serwery obsługują 4 000 000 zapytań do bazy danych na dobę, więc sobie policz w jakim stopniu takie jedno, dodatkowe zapytanie na odświeżenie strony wpłynie na obciążenie bazy.
A, i 10 minut to moim zdaniem chyba za dużo. 3 minuty powinno wystarczyć, żeby nie było dużych przekłamań.
Jest nawet sposób na zrobienie tego liczącego nawet co do sekundy (wykorzystując Ajax) i pokazanie ilości użytkowników online w czasie rzeczywistym, ale to już tak tylko sobie gadam.
ja bym zrobił osobną tabele w bazie (typ memory) gdzie wrzucałbym ostatni czas aktywności,
ustawił crona co np 5 minut na kasowanie rekordów starszych niż X minut,
dzięki temu select obejdzie się bez warunków.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.