Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smart functions
ActivePlayer
post
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
  1. <?php
  2. catsFinder::getById(12);
  3. ?>
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:
  1. SELECT c.lang = 'pl' AS validLang, c.*, pl_c.lang AS lang_pl, en_c.lang AS lang_en, de_c.lang AS lang_de FROM nccms_cats AS c LEFT JOIN nccms_cats AS pl_c ON c.id = pl_c.id AND pl_c.lang = 'pl' LEFT JOIN nccms_cats AS en_c ON c.id = en_c.id AND en_c.lang = 'en' LEFT JOIN nccms_cats AS de_c ON c.id = de_c.id AND de_c.lang = 'de' WHERE c.parent = 0 ORDER BY priority DESC, validLang DESC

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ąć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:38