Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: keszowanie a zliczanie wyswietlen strony
Forum PHP.pl > Forum > PHP
wojto
Sprawa wyglada nastepujaco.
Z bazy danych pobieram informacje o grze flash: id, nazwa, ...., ilosc_gran, itd.
zapytanie keszuje do pliku w postaci zserializowanej.
Teraz problem jest taki, ze co zrobic ze zliczaniem liczby grań w dana gre?

Przy kazdym graniu, w bazie licznik jest zwiekszany o 1, ale nie ma sensu znowu pobierac i keszowac danych gry za kazdym razem jak ktos w nia gra.
Tak wiec podczas wyswietlania danych gry, licznik wskazuje liczbe z pliku zkeszowanego (czyli stare dane).
Pliki zkeszowane zostaja nadpisane tylko podczas edycji danych gry w bazie.

Nie wiem jak mozna to sprytnie rozwiazac :/
Nie chce pobieraz z bazy samej liczby gran w dana gre, bo to sie mija z funkcja keszowania.
A wyswietlanie liczby gran z pliku zkeszowanego (czyli liczby pobranej z bazy podczas ostatniej modyfikacji danych) tez jest zlym wyjsciem.
FiDO
Cytat(wojto @ 2005-09-29 18:42:15)
Nie chce pobieraz z bazy samej liczby gran w dana gre, bo to sie mija z funkcja keszowania.

Jak to sie mija? Cachuje sie dane, ktore nie ulegaja czesto zmianom, a jesli tu ulega przy kazdej grze no to nie ma wyjscia, zeby nie pobierac tego przy kazdej grze osobno. A pozostale dane z tej tabeli, ktore sie nie zmieniaja mozesz sobie cachowac.
NuLL
Statystyki każdej z gier można zapisać w innej tabeli poprostu. Pozatym dzięku temu można zrobić lepsze statystyki.
wojto
Cytat(FiDO @ 2005-09-29 18:57:20)
Jak to sie mija? Cachuje sie dane, ktore nie ulegaja czesto zmianom, a jesli tu ulega przy kazdej grze no to nie ma wyjscia, zeby nie pobierac tego przy kazdej grze osobno. A pozostale dane z tej tabeli, ktore sie nie zmieniaja mozesz sobie cachowac.

Takto sie mija, ze dalej bedziemy musieli wykonac zapytanie do bazy, tylko nie bedziemy pobierac wielu kolumn, tylko ta z iloscia gran.
A wg mnie jedna z funkcji keszowania jest ograniczenie ilosci zapytan do bazy.
Zapisanie statystyk gier w innej tabeli daje taki sam efekt jak powyzsze rozwiazanie, ze ciagle bedzie ta zpytanie do bazy wykonywane.
Chyba skorzystam z rozwiazania podpowiedzianego na webhelpie przez FanFatal'a, czyli zapisywanie gran w kazda gre w pliku tekstowym idGry.txt i zwiekszanie tej liczby/oraz odczytywanie jej przy kazdym graniu.
FiDO
Cytat(wojto @ 2005-09-29 20:42:27)
Takto sie mija, ze dalej bedziemy musieli wykonac zapytanie do bazy, tylko nie bedziemy pobierac wielu kolumn, tylko ta z iloscia gran.
A wg mnie jedna z funkcji keszowania jest ograniczenie ilosci zapytan do bazy.

No i masz tutaj racje. Ale to wcale nie znaczy ze cachowanie mozna wcisnac wszedzie.. do danych, ktore sie czesto zmienaja nie ma to sensu, tak jak w tym wypadku, bo nie ma co cachowac danych, ktore ciagle sie zmieniaja. Takze bez przesady.. wszystkiego cachowaniem nie zalatwisz. Tymbardziej ze wyciagasz jedna wartosc z bazy, bez zadnych joinow i innych pierol, wiec takie zapytanie wykonuje sie tak szybko, ze mozna to pominac.. czas wykonania bedzie krotszy niz milisekunda. Podejrzewam, ze odczyt tego z pliku bedzie niewiele szybszy, a zyski na poziomie mikrosekund to juz troche przegiecie.. napewno w innym miejscu mozesz tyle zyskac w bardziej sensowny sposob.
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.