cache zapytań SQL do pliku txt - zaspisanie wyników z bazy do pliku w php
Świetna mała biblioteka służąca do zapisywania wyników zapytań z bazy do pliku TXT, dzięki temu odciążamy baze co ma kluczowe zaczenie wprzy dużysz obciążeniach serwisu.
Strona projektu: http://www.rooftopsolutions.nl/article/107
Zasada działania jest prosta przed wywołaniem zapytania sprawdzamy czy w katalogu s_cache nie ma pliku dla zapytania z takim kluczem w naszym wypadku klucz to getUsers:selectAll moze on miec dowolną wartość np zobaczUserow itd,
jeśli nie ma pliku wykonujemy zapytanie a jago wynik zapisujemy do katalogu s_cache
jeśli jest i nie jest już nie aktualny to pobieramy wynik z pliku a nie z bazy
Jak widac zasada jest prosta a daje ogromne wyniki przy optymalizacji
Użycie:
<?php
// konstrukcja silnika cache
$cache = new Sabre_Cache_Filesystem();
//tutatj funkcja np do pobrania użytkowników
function getUsers() {
global $cache;
// unikalny kod dla tego zapytania
$key = 'getUsers:selectAll';
// sprawdzić, czy dane nie są już w pamięci cache
if (!$data = $cache->fetch($key)) {
//nie istnieje wersja z pamięci podręcznej, pobieramy dane z bazy
$db = new mysqli('localhost','nazwa_usera','haslo','nazwa_tabeli');
$zapytanie = "SELECT * FROM users ORDER BY RAND() LIMIT 30";
$wynik = $db->query($zapytanie);
while($wiersz = $wynik->fetch_assoc()) { $data[] = $wiersz; }
// czas życia cahce 10 min (w sekundach)
$cache->store($key,$data,600);
}
return $data;
}
$users = getUsers();
print_r($users);
?>
// konstrukcja silnika cache
$cache = new Sabre_Cache_Filesystem();
//tutatj funkcja np do pobrania użytkowników
function getUsers() {
global $cache;
// unikalny kod dla tego zapytania
$key = 'getUsers:selectAll';
// sprawdzić, czy dane nie są już w pamięci cache
if (!$data = $cache->fetch($key)) {
//nie istnieje wersja z pamięci podręcznej, pobieramy dane z bazy
$db = new mysqli('localhost','nazwa_usera','haslo','nazwa_tabeli');
$zapytanie = "SELECT * FROM users ORDER BY RAND() LIMIT 30";
$wynik = $db->query($zapytanie);
while($wiersz = $wynik->fetch_assoc()) { $data[] = $wiersz; }
// czas życia cahce 10 min (w sekundach)
$cache->store($key,$data,600);
}
return $data;
}
$users = getUsers();
print_r($users);
?>
Listing
Dostęp do tej części serwisu został zablokowany, wyłącznie osoby zalogowane posiadają
dostęp do większych zasobów serwisu Funkcje.net. Aby utworzyć konto na portalu, skorzystaj
z linku 'Rejestracja' oraz wypełnij obowiązkowe pola formularza rejestracyjnego.
Więcej informacji na temat zniesienia treści zablokowanej jest dostępna tutaj.
Serwis Funkcje.net to ponad 4300 gotowych: funkcji, skryptów, kursów oraz artykułów z dostępnymi przykładami zastosowań oraz komentarzy.
Więcej informacji na temat zniesienia treści zablokowanej jest dostępna tutaj.
Serwis Funkcje.net to ponad 4300 gotowych: funkcji, skryptów, kursów oraz artykułów z dostępnymi przykładami zastosowań oraz komentarzy.
Wszelkie pytania oraz sugestie prosimy kierować na:
Ten wpis posiada swój wątek na forum
Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane
http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5055
Dane do logowania na forum są takie same jak na funkcje.net
Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane
http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5055
Dane do logowania na forum są takie same jak na funkcje.net
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 26604
Ranga: Administrator serwisu Punktów: 26604
Komentarze użytkowników
:: Losowe artykuły







