W najnowszej wersji testowej (jeszcze niedostępnej) ilość zapytań generowanych przy wczytywaniu strony głównej została drastycznie zmniejszona. Dzięki dodaniu cachowania skrypt wczytuję się szybciej, dzięki czemu zwiększa się komfort pracy dla katalogerów.
Słowem wstępu:
Z przeprowadzonego testu przez Irka z Pio (oryginał wiadomości znajduję się tutaj, mam nadzieje, że się nie obrazi, że go cytuje)
” Mały teścik.
Kategorii: mini – 24, qlweb – 24
podkategorii: mini – 604, qlweb – 624
wpisów: mini – 2663, qlweb – 2846
Odwołań do bazy.
wyświetlenie strony głównej: mini – 32, qlweb – 35
wyświetlenia kategorii (21 podkategorii): mini – 8, qlweb – 5
wyświetlenie podkategorii (14 wpisów, wyświetlane 10): mini – 18, qlweb – 8″
Wynika, że nie są to najoptymalniejsze skrypty
Standardowego qlweba z cachowaniem można troche ulepszyć
A więc:
w menu.php całkiem na początku dodajmy …
<?
$bck_file = ‘glowna.bck’;
if ($g_use_bck and $USE->get_bck($bck_file) ) {
} else {
?>
i całkiem na końcu
<?
if ($g_use_bck) { $USE->make_bck($bck_file, $szablon_kategori); }
} ?>
Dzięki temu po pierwszym wejsciu na stronę główną cały układ zostanie zapisany do pliku.
Hmm teraz należałoby się zastanowić … Co jeśli ktoś doda podkategorię, układ strony pozostanie bez zmian, więc trzeba poszukać kodów odpowiedzialnych za dodawanie/usuwanie/edycję podkategorii .
Np
u_p.php – należy dodać tam linijkę $USE->del_bck(‘glowna.bck’); w miejscu np po $USE->del_bck($bck_file);
dodaj_pod.php -operacja ta sama co linijkę wyżej
moderacja_podkategorie.php - operacja ta sama co 2 linijki wyżej
I to chyba na tyle chociaż mogłem coś pominać.
Dzięki temu strona główna będzie wykonywała około 35 zapytań przy pierwszym otwarciu strony i po operacjach na podkategoriach, a po cachowaniu będzie to około 3 zapytań (1 – ostanio dodane, 2 – statystyki , kolejne hmm
)
PS W podobny sposób można cachować ostanio dodane oraz statystyki
Działanie można sprawdzić tutaj – włączony tryb debug – widoczny jest czas generowania strony oraz liczba zapytań.
PS 2 Po dokładniejszych testach taki skrypt będzie można znaleźć w paczce tutaj.
Jak zawsze zapraszam do komentowania.
Zamieszczony w: Opis modyfikacji