Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyspieszenie zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
mooschka
Witam,

w jaki sposób mogę poprawić poniższe zapytanie, aby wykonywało się szybciej?
  1. SELECT * FROM h_lico WHERE (NR_ZAWOD, LICO_SEZ) IN (SELECT NR_ZAWOD, LICO_SEZ FROM h_lico GROUP BY NR_ZAWOD, LICO_SEZ HAVING COUNT(LICO_NR)>1)

Tabela h_lico ma ok 105 tys. rekordów, na kolumny NR_ZAWOD, LICO_NR, LICO_SEZ założone są indeksy.
Dodam jeszcze, że samo podzapytanie wykonuje się około pół sekundy i zwraca 79 wierszy.
wookieb
Ile czasu wykonuje się obecne zapytanie?
Dla testu zapisz sobie wyniki zapytania
  1. SELECT NR_ZAWOD, LICO_SEZ FROM h_lico GROUP BY NR_ZAWOD, LICO_SEZ HAVING COUNT(LICO_NR)>1
i wstaw je potem do IN. Jeżeli będzie szybciej to ok, jeżeli nie to powiedz coś więcej o strukturze bazy, co ona robi i co chcesz dokładnie pobrać
mooschka
Cytat(wookieb @ 31.10.2009, 14:22:40 ) *
Ile czasu wykonuje się obecne zapytanie?
Dla testu zapisz sobie wyniki zapytania
  1. SELECT NR_ZAWOD, LICO_SEZ FROM h_lico GROUP BY NR_ZAWOD, LICO_SEZ HAVING COUNT(LICO_NR)>1
i wstaw je potem do IN. Jeżeli będzie szybciej to ok, jeżeli nie to powiedz coś więcej o strukturze bazy, co ona robi i co chcesz dokładnie pobrać


Nie doczekałem się (czekałem parę minut, teraz znowu zapuściłem).

Tak jak napisałeś, wstawiłem 79 par do IN i zapytanie trwało 0,0943 sekundy (w tym samym czasie na innej konsoli idzie cały czas problematyczne zapytanie).
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.