Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania, Zapytanie, które zawiesza serwer....
Balon
post
Post #1





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


Niedawno pisałem z prosba o pomoc w ustaleniu logiki tworzenia zapytania na konkretnym przykładzie.

http://forum.php.pl/index.php?showtopic=68582&hl=

Na takiej zasadzie jaką wymyśliłem sobie tam stworzyłem tą wyszukiwarkę. Zawiera ona 7 pól. Docelowo będzie około 20.

Teraz problem jest taki, tak jak pisałem w tamtym temacie, że zapytanie to będzie bardzo wolne. Jednak okazało się, że jest jeszcze gorzej. To zapytanie mi wiesza serwer lokalny.. Można się domyślić że dlatego że porównuje dane z 15 kopii tabel...

Zapytanie wygląda tak..
  1. SELECT i.*, u.name
  2. FROM items i, users u, cechy c1, cechy c2, cechy c3, cechy c4, cechy c5, cechy c6, cechy c7, details d1, details d2, details d3, details d4, details d5, details d6, details d7
  3. WHERE i.id = d1.id AND i.id = d2.id AND i.id = d3.id AND i.id = d4.id AND i.id = d5.id AND i.id = d6.id AND i.id = d7.id AND i.userid = u.id AND d1.id_cecha = c1.id AND d1.value LIKE "%1%" AND c1.name = "Aparat" AND d2.id_cecha = c2.id AND d2.value LIKE "%%" AND c2.name = "Cena" AND d3.id_cecha = c3.id AND d3.value LIKE "%1%" AND c3.name = "JAVA" AND d4.id_cecha = c4.id AND d4.value LIKE "%13%" AND c4.name = "Model" AND d5.id_cecha = c5.id AND d5.value LIKE "%1%" AND c5.name = "Polifionia" AND d6.id_cecha = c6.id AND d6.value LIKE "%7%" AND c6.name = "Producent" AND d7.id_cecha = c7.id AND d7.value LIKE "%%" AND c7.name = "Rok produkcji"


Trochę za dużo jak na głupią szukajke, nie ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Czy ktoś jest w stanie naprowadzić mnie na sposób zoptymalizowania tego zapytania ? To dla mnie bardzo ważne - aktualny projekt...

Pozdrawiam,
Balon !

Ten post edytował Balon 18.05.2007, 19:02:10
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 19:02