Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zmiejszyć ilość zapytań do bazy ?
Forum PHP.pl > Forum > Bazy danych > MySQL
kkuubbaa88
witam

mam strone w ktorej jest pare rankingow oraz menu... chcialbym to wszystko zrobic na bazie mysql... problem taki, ze mam chyba limit przypadajacy na jednoczesne zapytania = 10... i teraz co moge zrobic, aby ich jakos mniej przypadalo na zaladowanie strony ? czy cos da podzielenie na iframy i ladowanie jako kawalki stron w te miejsca ? to cos pomoze ? czy sa jakies inne możliwosci ?
kwiateusz
moze uproszczenie/polaczenie zapytan?

Z powietrza to tak trudno zgadnac

Zawsze mozesz je cachowac i raz na jakis czas tylko odświezac go
Shili
Zmniejszenie ilości zapytań zależy od bazy danych. Jeśli rankingi wszystkie masz w jednej bazie, to możesz je wybrać jednym zapytaniem, jeśli porozsiewane po osobnych tabelach będzie gorzej (ale też będzie to zapewne możliwe, chyba że w ogóle baza jest z księżyca wzięta smile.gif). Podobnie jest z menu (nie za bardzo widzę sens robienia menu na bazie danych)
cojack
Można zastosować cachowanie bazy... nie wiem, optymalizacje bazy...
sowiq
Cytat(Shili @ 27.06.2008, 15:30:59 ) *
[...]nie za bardzo widzę sens robienia menu na bazie danych

Jeśli jest to strona z możliwością edycji menu z poziomu CMS, to jak najbardziej jest to dobre rozwiązanie. Tylko w takim przypadku wypadałoby zrobić jakieś cache'owanie wygenerowanego pliku, niż to mielić za każdym razem od nowa.
kkuubbaa88
a jak sie robi takie cuda z cachowaniem bazy ?
kwiateusz
kilka technik:

jedna z prostszych pobierasz z bazy, renderujesz cala strone i zapisujesz ja do pliku np html i przy nastepnym wejsciu kogos nie czytasz z bazy a sprawdzasz czy cache jest i juz wyrenderowana strone mu podsyłasz

albo robisz zapytanie konwertujesz wynik do czego potrzebujesz np tablicy, serializujesz ja gdzies na dysk zapisujesz i potem przy wejsciach ludzi czytasz juz wyniki z dysku

aktualnie to mi przychodzi na mysl
kkuubbaa88
rozumie, ze to jest o wiele lepsze wyjscie niz tak za kazdym razem pobierac dane z bazy ? a ktory sposob lepszy ? chyba ten z danymi zapisanymi do czegos tam... tylko do czego ? i w jaki sposob ?
sowiq
Tak, jak napisałem wyżej:
- menu jest zmieniane raczej rzadko. Dlatego bez sensu jest generować je na nowo za każdym razem jak ktoś wejdzie na stronę. Wystarczy to zrobić tylko wtedy, kiedy jest edytowane przez admina, zapisać wynik do pliku, a później załączać ten plik na stronę.

W zależności od działania strony takie operacje można robić w kilku miejscach. Do tego, jeśli masz jakieś liczniki odwiedzin itp, a masz duże limity na zapytania sql - możesz sprawę rozwiązać za pomocą plików.
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.