sql >> Databáze >  >> RDS >> Mysql

Připojení vs. dílčí dotaz

Poddotazy jsou logicky správným způsobem řešení problémů formuláře "Získat fakta od A, podmíněné fakty od B". V takových případech dává logičtější smysl ponechat B v dílčím dotazu než provést spojení. V praktickém smyslu je to také bezpečnější, protože si nemusíte dávat pozor na získání duplicitních faktů od A kvůli více zápasům proti B.

Prakticky vzato však odpověď obvykle spočívá ve výkonu. Některé optimalizátory cucají citrony, když se připojí, oproti dílčímu dotazu, a některé naopak vysávají citrony, a to je specifické pro optimalizátor, verzi DBMS a konkrétní dotaz.

Historicky obvykle vítězí explicitní spojení, a proto je zavedená moudrost, že spojení jsou lepší, ale optimalizátory se neustále zlepšují, a proto dávám přednost psaní dotazů nejprve logicky koherentním způsobem a poté restrukturalizaci, pokud to odůvodňují omezení výkonu.



  1. 3 způsoby, jak extrahovat měsíc z data na SQL Server (T-SQL)

  2. Jak používat kruhovou datovou strukturu ve funkcích okna

  3. Výpočet počtu celých měsíců mezi dvěma daty v SQL

  4. Spravujte sdružování připojení ve webové aplikaci pro více nájemců pomocí Spring, Hibernate a C3P0