Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja wyszukiwania z INNER JOIN, za długo sie wykonuje
Homiczek
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2003

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


Mam następujący problem.

Łącze 2 tabele:

1. zawiera główne dane itp i ma ID
2. zawiera powiązania pierwszej tabeli z trzecią tabelą: pola : ID, opcja_ID

Trzecia tabela zawiera nazwy opcji, ale do wyszukiwania potrzebuje znajdować takie które mają te opcje zapisane i nie potrzebuje ich nazw wtedy wyświetlać.

I problem polega na tym że potrzebuje wyszukiwać rekordy z tabeli 1 spełniające pewne tam kryteria, a dodatkowo spełniające opcje z powiązanej tabeli

mam zapytanko :
  1. SELECT mmdm.ID
  2. FROM mmdm.pierwsza AS mmdm
  3. INNER JOIN druga AS wt ON mmdm.ID = wt.opcja_ID
  4. WHERE wt.opcja_ID = '50' OR wt.opcja_ID = '35' OR wt.opcja_ID = '34'
  5. GROUP BY mmdm.ID
  6. HAVING count( * ) =3


to przykładowe zapytanie wyciąga wiersze z 1 tabeli które mają co najmniej zaznaczone opcje 50,34 i 35.
Wiem że to zapytanie jest pokręcone ale do takiego doszłem.

zapytanko działa, tylko dla 30000 rekordów w 1 tabeli i z miliona w drugiej to wykonuje sie 4 sekundy, a to trooche za dużo.

Jakby ktoś miał jakiś pomysł jak to wyszukiwanie przyśpieszyć to byłbym bardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

z góry thx
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: 24.12.2025 - 13:23