Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: optymalizacja zapytania LEFT JOIN
Forum PHP.pl > Forum > Bazy danych
adam45
ponizsze zapytanie wykonuje sie okolo 5 minut
czy jest jakis sposob aby mozna je było zoptymalizować

  1. SELECT tabelaA.nr AS numer, SUM(tabelaA.ilosc*tabelaB.cena) AS koszt FROM tabelaA LEFT JOIN tabelaB ON tabelaA.text=tabelaB.text WHERE tabelaA.kolor='zielony' AND tabelaA.rozmiar='maly' AND tabelaA.ilosc>0 GROUP BY tabelaA.nr
  2.  
  3. ponizsze kolumny maja INDEX FULLTEXT
  4. tabelaA.text
  5. tabelaB.text


jak robie explain to mam
Kod
id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra     
1     SIMPLE     tabelaA     ALL     NULL    NULL    NULL    NULL    29577     Using where; Using temporary; Using filesort
1     SIMPLE     tabelaB     ALL     text     NULL    NULL    NULL    92877     Using where
mmmmmmm
1. Smiem podejrzewać, że LEFT JOIN nie jest ci potrzebny - wystarczy JOIN.
2. Te indexy nie są w ogóle wykorzystywane... Nie wiem, czy FTS indexy są wykorzystywane do złączeń W OGÓLE. Dodaj zwykłe indeksy. Albo jeden na te trzy pola
adam45
dodanie zwyklych indeksow rozwiazalo problem
dzieki
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.