![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 27 Dołączył: 16.04.2008 Skąd: Bakutilu Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 36 Dołączył: 28.08.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 2 Dołączył: 29.01.2004 Skąd: Rz-ów Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:08 |