![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Posiadam na praktycznie wszystkich podstronach sporego portalu, który tworzę od pół roku taki oto skrypt:
Powyższy skrypt zapisuje na jakiej podstronie znajduje się user oraz ustawia kolumnę z czasem sesji na 5 minut. Mam też plik, który wykonuje cron co 5min w takiej postaci: Ma on za zadanie wyeliminowanie nie aktywnych użytkowników, którzy byli zalogowani. Odnośnie skryptu crona nie mam zastrzeżeń. Natomiast skrypt, który ustawia 5min "życia" sesji przy zaledwie 3rekordach w bazie o unikalnym ID każdy, wydłuża czas generowania strony aż, o 0.04000 sekundy! na pierwszy rzut oka to malutko, ale przewidywuje w tabeli `online` trzymać około 10k rekordów, więc czas ten mocno się wydłuży... Mam założone indexy na kolumny, ale problem chyba leży w logice mojego skryptu wywalającego sesje, aby nadać danemu userowi status "offline", gdy ten nie korzysta z portalu przez 5min. Jeśli ktoś ma inną idee, szybszą to będę wdzięczny za wskazówki... Ten post edytował fr33d0m 2.07.2012, 18:24:51 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może problem załatwi założenie indeksów na pola które używasz w zapytaniach po where ? (IMG:style_emoticons/default/smile.gif)
Poza tym, ja zrobiłbym w ten sposób, że przy odwiedzeniu strony zapisuesz do bazy aktualny uniksowy znacznik czasu (time()/now()) a cron odpalasz do wyrzucania tych wierszy, które które mają ten znacznik uniksowy mniejszy niż time()-300 Co do zapisywania time()+300 czy samego time() to nie ma większego znaczenia. Dodawanie nie zajmuje zbyt wiele czasu. Ten post edytował peter13135 2.07.2012, 21:25:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.09.2025 - 13:50 |