Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Update online - konstrukcja
fr33d0m
post
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:

  1. if($ZAPISUJ===1){
  2. mysql_query("UPDATE `online` SET `gdzie` = '1', `czas` = '5' WHERE `sesions_id` = '$id'");
  3. }

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:
  1. mysql_query("UPDATE `online` SET `czas` = (`czas` - '5') WHERE `czas` > 4");

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 , 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


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fr33d0m
post
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

Ostrzeżenie: (0%)
-----


Panowie, nie kumam was. Rozwiązanie Rysh'a jest tak samo czasochłonne co moje - sprawdzałem. Dodanie czasu na przód dla sesji w bazie poprzez timestamp i później tylko sprawdzanie warunkiem czy sesja jeszcze żyje, jest lepsza od crona - to prawda, ale to załatwia tylko 1/2 problemu. Muszę wykonać update na każdej podstronie, aby wiedzieć gdzie znajduje się dany user i w tym tkwi największy problem... W sumie temat jest bez sensu, bo nie da się zrobić tego bez UPDATE, a z UPDATE ostro muli.

//edit:
z update: Czas generowania 0.08065s
Bez update: Czas generowania 0.02974s

Ten post edytował fr33d0m 2.07.2012, 20:26:27


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post

Posty w temacie
- fr33d0m   [SQL][PHP]Update online - konstrukcja   2.07.2012, 18:23:29
- - Rysh   Twoje rozwiązanie jest do bani. Więc nie dziw się,...   2.07.2012, 18:31:01
- - fr33d0m   Tak, a Twój post to czysty i perfidny spam. Gdyby ...   2.07.2012, 18:34:55
- - Rysh   To nawet nie jest dobre rozwiązanie, wręcz powiedz...   2.07.2012, 18:40:57
- - fr33d0m   to powiedz mi jak wywalić zapisaną sesje w bazie (...   2.07.2012, 18:48:12
- - Rysh   Jak to się nie da? A w czym problem zapisać w bazi...   2.07.2012, 18:53:13
- - fr33d0m   No tak... ale to załatwi tylko 1/2 problemu. Chcę ...   2.07.2012, 18:57:29
- - Rysh   Update i tak będziesz musiał robić, ponieważ będzi...   2.07.2012, 19:02:35
- - fr33d0m   hm... czy aby przypadkiem nie wychodzi na to samo?...   2.07.2012, 19:09:05
|- - Rysh   Cytat(fr33d0m @ 2.07.2012, 20:09:05 )...   2.07.2012, 19:40:12
- - fr33d0m   To głupie, ale specjalnie dla Ciebie zmieniłem kol...   2.07.2012, 19:49:25
|- - Rysh   Poparz kolego: [PHP] pobierz, plaintext <?php$c...   2.07.2012, 20:26:12
|- - fr33d0m   Tak, zgadzam się. Tylko, że UPDATE Twój czy mój, w...   2.07.2012, 20:57:25
- - klocu   Ja mimo wszystko popieram rozwiązanie Rysh'a. ...   2.07.2012, 20:08:11
- - fr33d0m   Panowie, nie kumam was. Rozwiązanie Rysh'a jes...   2.07.2012, 20:19:15
- - peter13135   Może problem załatwi założenie indeksów na pola kt...   2.07.2012, 21:22:34
- - Rysh   Widzę że na siłę chcesz używać CRON'a. Niepotr...   2.07.2012, 21:24:18
- - fr33d0m   @peter12125, też myślałem, aby używać crona wyłącz...   2.07.2012, 21:47:40
- - PtasiorZz   Ja osobiście zrobiłbym to tak: - Nie zapisywałbym...   3.07.2012, 05:49:17
- - fr33d0m   Hmm... Zdecydowanie bardziej ufam ustawieniu czasu...   3.07.2012, 19:21:05
- - PtasiorZz   Odświeżenie sesji a zapisanie ostatniej aktywności...   3.07.2012, 22:39:14


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:33