Wiem, że możemy zrobić correlated subqueries i dołączyć. Ale który z nich jest szybszy? Czy istnieje złota zasada, czy muszę zmierzyć obie te rzeczy?Który z nich jest szybszy: skorelowane podzapytania lub dołącz?
Odpowiedz
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.
- 1. Który z nich jest szybszy i lżejszy - mysqli i PDO
- 2. Mapa/ArrayList: który z nich jest szybszy w wyszukiwaniu elementu
- 3. JOIN lub podzapytanie skorelowane ze istnieje zapis, który z nich jest lepszy
- 4. Który z nich jest szybszy, odczytywanie z dysku lub przydzielanie pamięci systemowej
- 5. double lub float, który jest szybszy?
- 6. charAt() lub podłańcuch? Który jest szybszy?
- 7. Który z nich jest szybki, Klasa abstrakcyjna lub interfejs?
- 8. Który jest szybszy - jeśli ... else lub Wybierz .. case?
- 9. Apache2: mod_wsgi lub mod_python, który z nich jest lepszy?
- 10. Który z nich jest lżejszy, JSON lub BSON?
- 11. Który z nich jest łatwiejszy w użyciu? GCD lub NSOperation?
- 12. Dołącz wynik podzapytania w Linq
- 13. Który z nich jest odpowiednikiem metody isnan()?
- 14. Który z nich jest szybszy? Spark SQL z klauzulą Where lub Use of Filter w Dataframe po Spark SQL
- 15. Który z nich jest szybszy w przetwarzaniu i konwersji int.Parse(), int.TryParse(), Convert.Int32()
- 16. , który jest szybszy do załadowania: pikle lub hdf5 w pythonie
- 17. Który jest szybszy - A Korzystanie blok lub try/catch/finally
- 18. czyszczenie wektora lub definiowanie nowego wektora, który jest szybszy
- 19. Który system buforowania Django jest szybszy: System plików lub DB?
- 20. Który jest szybszy? Stałe, zmienne lub zmienne tablice
- 21. W PHP, który jest szybszy: preg_split lub eksplodować?
- 22. Który jest szybszy ... XSLT makro lub .NET użytkownika sterowania
- 23. getattr() versus dict lookup, który jest szybszy?
- 24. mysql, ifnull vs coalesce, który jest szybszy?
- 25. Jak określić, który z nich należy użyć - next(); lub dequeue() ;?
- 26. Team City kontra CruiseControl.net - który z nich jest lepszy?
- 27. ASP.NET vs SharePoint - który z nich jest lepszy dla programistów?
- 28. LEFT JOIN Znacząco szybszy niż INNER DOŁĄCZ
- 29. plsql - otrzymasz pierwszy wiersz - który z nich jest lepszy?
- 30. Który z nich jest lepszy pod względem wydajności?
Powinieneś zmierzyć na podstawie zapytania. To zależy od twoich danych, rozmiaru, schematu. Innymi słowy, nie ma złotej reguły. – Cfreak
@Cfreak - dodaj to jako odpowiedź - ponieważ jest poprawna. – RQDQ