Skocz do zawartości

Jak powtarzające się zapytania umieszczać w Cache


radca78

Rekomendowane odpowiedzi

Witam

Przy kazdym przeladowaniu strony odwoluje sie do mysql'a aby wypelnic select/option w formularzu. Jest to wygodne dla mnie bo nie musze pilnowac - w listach jest to co jest dostepne w bazie.

Chcialbym jednak odciazych serwe i nie generowac zbednych zapytan do bazy.

I tu pytanie - jak zrobic cache - aby powtarzajace sie zapytania byly pobierane z cachu. Nie mam niestety dostepu do my.ini gdzie moglbym to wlaczyc wiec pozostaje php.... Jakies podpowiedzi ?

pozdro 4all

Odnośnik do komentarza
Udostępnij na innych stronach

Ja napisalem klase ktora obluguje zapytania, podczas wywolywania zapytania w sktypcie podaje jaki czas ma byc przechowywana w pliku, jezeli czas po jakim zapytanie zostalo wykonane ponownie jest mniejszy od zdanego informacja pobierana jest z pliku a baza olewana.

Odnośnik do komentarza
Udostępnij na innych stronach

Mozesz np raz dziennie generowac plik txt z <option>...</option> dla <select>

np:

$sql =" SELECT ... FROM ... WHERE ... = ...";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {

$options .= "<option value=\"...\"></option>";

}

$fp = fopen('options.tmp');

fwrite($fp, $options);

fclose($fp);

a pozniej w kodzie dajesz:

<select ...>

<?=file_get_contents('options.tmp');?>

</select>

Moze pod katem programistycznym nie jest to najlepsze rozwiazane ale chyba o takie cos Tobie chodzilo.

Mariusz Dalewski

MD Software

Programowanie systemów CMS

Odnośnik do komentarza
Udostępnij na innych stronach

Ja też napisałem;)

Generuję raz na xx czasu nawet bardzo skomplikowane rzeczy i tylko robię odczyt z pliku.

Problem pojawia sie tylko wtedy kiedy dane są częstko aktualizowane :)

Mariusz Dalewski

MD Software

Programowanie systemów CMS

Odnośnik do komentarza
Udostępnij na innych stronach

Gdy jest mnóstwo zapytań na sekundę, to nawet 5 sekundowe cashowanie bardzo pomaga.

W przypadku gdy zapytania są obciążające CPU (wyszukiwanie), lub RAM (wiele kilobajtów tekstu), to wtedy samo wygenerowanie tego może zająć 5 sekund. W takim wypadku cachować trzeba przynajmniej na 5 minut.

Jak to nie da rady, to trzeba postawić drugą maszynę z bazą tylko do odczytu i zainteresować się mysqli_init();

Polecam linki stałe w Seomatik.pl oraz dopalacz stron Gotlink.pl.

obrazek.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

Proponuje zainteresować się PEAR -> https://pear.php.net/packages.php?catpid=3&catname=Caching

Zamiast cachować zapytanie zcachiowac kod html będący wynikiem obróbki przez php tego zapytania. Do tego celu możesz skorzystać z https://pear.php.net/package/Cache_Lite

- polecam.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności