Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Kto jest online.
Forum PHP.pl > Forum > PHP
styryl
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
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.
ave
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.