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%)
-----


hm... czy aby przypadkiem nie wychodzi na to samo? a nawet gorzej? bo w Twoim kodzie traci minimalne zasoby na liczenie czasu - w moim ma twardo podaną liczbę bez liczenia. Poza tym, INT chyba szybciej się zapisuje od stringa, a nawet jeśli nie, to na pewno lepiej jest odczytywać później po INTcie niż po STRINGU... Taki mądry do zjeżdżania mojej błędnej(?) logiki, a sam się nie popisałeś. Ehh

Ten post edytował fr33d0m 2.07.2012, 19:33:08


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





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(fr33d0m @ 2.07.2012, 20:09:05 ) *
hm... czy aby przypadkiem nie wychodzi na to samo? a nawet gorzej? bo w Twoim kodzie traci minimalne zasoby na liczenie czasu - w moim ma twardo podaną liczbę bez liczenia. Poza tym, INT chyba szybciej się zapisuje od stringa, a nawet jeśli nie, to na pewno lepiej jest odczytywać później po INTcie niż po STRINGU... Taki mądry do zjeżdżania mojej błędnej(?) logiki, a sam się nie popisałeś. Ehh

Przetestuj, a później podyskutujemy ;-)

Poza tym, kto Ci każe trzymać czas życia sesji w stringu? Czas podajesz jako unixtime w integerze, przecież to logiczne jak dwa plus dwa.


--------------------
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: 21.08.2025 - 21:09