2012-09-11 11 views

Odpowiedz

16

Po pierwsze, skorelowane podzapytanie jest typem sprzężenia. Nie ma złotej zasady, która daje najlepszy plan wykonania. Jeśli interesuje Cię wydajność, musisz wypróbować różne formularze, aby zobaczyć, co działa najlepiej. Albo przynajmniej przyjrzyj się planom egzekucji, aby podjąć tę decyzję.

Ogólnie rzecz biorąc, staram się unikać skorelowanych podkwerend z kilku powodów. Po pierwsze, prawie zawsze można je zapisać bez korelacji. Po drugie, wiele silników zapytań przekształca je w połączenia z zagnieżdżonymi pętlami (chociaż używają indeksów), a inne strategie łączenia mogą być lepsze. W takich przypadkach skorelowane podzapytania utrudniają zrównoleglenie zapytania. Po trzecie, skorelowane podzapytania są zwykle w klauzulach SELECT lub WHERE. Lubię wszystkie moje tabele w klauzuli FROM.

Jednak w MySQL skorelowane podzapytania są często skutecznym sposobem wykonania zapytania. Jest to szczególnie prawdziwe w przypadku korzystania z podzapytania w klauzuli IN. Tak więc nie ma złotej reguły.

Powiązane problemy