Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Który jest szybszy:skorelowane podzapytania czy dołączanie?

Po pierwsze, skorelowane podzapytanie w rzeczywistości jest rodzajem złączenia. Nie ma złotej zasady, która tworzy najlepszy plan wykonania. Jeśli interesuje Cię wydajność, musisz wypróbować różne formy, aby zobaczyć, co działa najlepiej. A przynajmniej spójrz na plany egzekucyjne, aby podjąć tę decyzję.

Ogólnie rzecz biorąc, staram się unikać skorelowanych podzapytań z kilku powodów. Po pierwsze, prawie zawsze można je napisać bez korelacji. Po drugie, wiele aparatów zapytań przekształca je w sprzężenia w pętli zagnieżdżonej (choć przy użyciu indeksów), a inne strategie sprzężenia mogą być lepsze. W takich przypadkach skorelowane podzapytania utrudniają zrównoleglenie zapytania. Po trzecie, skorelowane podzapytania znajdują się zwykle w klauzulach SELECT lub WHERE. Chciałbym, aby wszystkie moje tabele znajdowały się w klauzuli FROM.

Jednak w MySQL skorelowane podzapytania są często najbardziej skuteczny sposób na wykonanie zapytania. Jest to szczególnie ważne, gdy używasz podzapytania w IN klauzula. Tak więc nie ma złotej zasady.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z MySQL z usługami heterogenicznymi Oracle

  2. Błąd MySQL 1118 (za duży rozmiar wiersza) podczas przywracania bazy danych Django-mailer

  3. Aplikacja webowa spring-boot po chwili traci możliwość łączenia się z MySQL/RDS

  4. Jak odinstalować MySQL z Mac OS X?

  5. Jak działają MIN() i MAX() na ciągach znaków CHAR/VARCHAR w MySQL?