![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Brak czasu :/
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Statystyki każdej z gier można zapisać w innej tabeli poprostu. Pozatym dzięku temu można zrobić lepsze statystyki.
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:33 |