Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: buforowanie wyników zapytania sql
Forum PHP.pl > Forum > PHP
batman
Witam

Siedząc bezczynnie w pociągu wpadłem na pewien pomysł - buforowanie wyników zapytania sql. Wygląda to mniej więcej tak.

Wchodząc po raz pierwszy na stronę (np. lista użytkowników) wykonuje się zapytanie wyciągające dane z bazy. Dane te zapisywane są do tablicy, a ta zapisywana do pliku php utworzonego w momencie zwracania danych do użytkownika. Teraz jeśli nastąpi żądanie o dane z tabeli tabuser, wówczas zamiast wykonywać kolejne zapytanie wystarczy dołączyć plik php z tablicą zawierającą potrzebne dane.

Co jeśli dane ulegną zmianie?
Można to rozwiązać na dwa sposoby - aktualizować bufory (pliki php z tablicą) lub je kasować.

W jaki sposób sortować dane?
Poprzez sortowanie tablicy.

W jaki sposób zastosować stronicowanie - wygenerować tyle plików php, ile jest stron.

Bufory będą miały następującą nazwę: tabuser_1_50.php, gdzie tabuser to nazwa zbuforowanej tabeli, 1 to pierwszy iduser-a zwrócony przez zapytanie, 50 - ostatni.

Nie napisałem jeszcze klasy, która by za to odpowiadała, ponieważ jest to dopiero pomysł winksmiley.jpg

Co o tym sądzicie?
nrm
sądzimy, że ameryki nie odkryłeś i serializację danych sql używamy od ładnych paru lat winksmiley.jpg
batman
Cytat(normanos @ 1.11.2006, 15:25:30 ) *
sądzimy, że ameryki nie odkryłeś i serializację danych sql używamy od ładnych paru lat winksmiley.jpg


Zdaję sobie sprawę, że podobne rozwiązania już istnieją, niemniej jednak zależy mi na konkretnych odpowiedziach winksmiley.jpg Własne przemyślenia, doświadczenia, uwagi do rozwiązania.
nrm
przemyślenia, doświadczenia:

- nie wszystko jest sens keszować

- kesz na czas zamiast zrób/skasuj jest bardzo przydatny w wielu przypadkach, przykład:

lista kategori (i ilośc wpisów) np. rozrywka (342), muzyka (453)
z keszem typu start/stop musiałbyś bez przerwy resetować kesz po jakims wpisie co w tym przypadku wydaje się zbędne. za to robisz kesz na czas, powiedzmy 15 minut i gra. przy wiekśzym zajcie nikt niezauważy, że masz 568 zamiast 592 smile.gif

- dla ciebie ważne jest aby generować serializowane dane z unikalnym uchwytem zeby niepomieszac sobie danych

- CodeIgniter przykladowo robi to wg. kontrolera/akcji winksmiley.jpg
http://www.codeigniter.com/user_guide/database/caching.html

styka? winksmiley.jpg
batman
Cytat
- nie wszystko jest sens keszować


Nie będę keszował wszystkich zapytań do bazy. W klasie do obsługi źródła danych dodam możliwość wyboru.

Cytat
- kesz na czas zamiast zrób/skasuj jest bardzo przydatny w wielu przypadkach


Wybór sposobu czyszczenia bufora też pozostawię do wyboru. Niektóre zmiany powinny być widoczne od razu, np info o użytkownikach, a niektóre mogą "chwilę" poczekać, np info o produktach.

Cytat
- dla ciebie ważne jest aby generować serializowane dane z unikalnym uchwytem zeby niepomieszac sobie danych


Za to będzie odpowiedzialna nazwa pliku

Cytat
styka? winksmiley.jpg


Styka winksmiley.jpg
Dzięki.

Czekam na dalsze uwagi.
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.