![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
w moich projektach stosuje zapytania typu
to samo jesli chodzi o userów, grupy userów, newsy - ogolnie get by id, get by parent, get all itp itd. Jestem zmuszony pisać w ten sposob - programisci uzywają potem 'klocków' do składania strony. Wracając do tematu - pomysłu... uruchamiając np 10 razy funkcje z rodziny 'byId' wykonuje 10 zapytań co oczywiscie jest mi nie na reke... wpadłem na pomysł, aby funkcja liczyła wewnątrz, który raz w tym requescie jest wywoływana i teraz... jeśli jest to > 3 razy zapisuje w bazie//configu ze nastepnym razem przy tym samym urlu funkcja ma wykonać select * ... a potem wybierać rezultat przy poszczególnych wywołaniach dla poszczególnych wartości wejsciowych. Napisałem swego czasu 'object map' - klasa do ktorej przekazuje wszystkie selecty, i przy następnych pierw sprawdzam czy przypadkiem nie mam juz rezultatu wpisanego w niej, jesli mam to jest z tamtad pobierany a zapytanie jest pomijane. Teraz nasuwa sie pytanie... czy select * będzie wydajniejsze od 5, 10 , 20 select * where id = '' ? moze ktos ma jakis inny pomysł na podniesienie wydajności? Jeśli chodzi o cache... cache jest zaimplementowany - nie jest to cos szczegolnego - przy kazdym update czyszczony jest cały - z prostego powodu - niektóre zapytania wygladają tak:
oczywiście mozna dbać na poziomie zapytania, cache dla których tabel ma być oprózniany - ja niestety musz dbać o programistów leni - takich jak ja, którzy czesto sie mylą, i to skrypt ma dbac o to co usunąć i kiedy usunąć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:38 |