Quale delle seguenti query SQL sarebbe più veloce? Un join su due tabelle o query successive?
-
16-10-2019 - |
Domanda
Ho due tabelle qui:
ITEMS
ID| DETAILS| .....| OWNER
USERS:
ID| NAME|....
Dove ITEMS.OWNER = USERS.ID
sto elencando le voci fuori con i loro nomi rispettivi proprietari. Per questo ho potuto utilizzare un join su entrambi i tavoli o potrei selezionare tutti gli elementi e ciclo attraverso di loro facendo una query SQL per recuperare il tupla di quel proprietario itmes. Quello è come:
1 sql con un JOIN contro 1x20 singola tabella SQL query
Il che sarebbe un suddetto approccio migliore per prendere in termini di velocità? Grazie
Soluzione
Ogni domanda ha in testa. Se si può fare qualcosa con una query, è (quasi) sempre meglio farlo con una sola query. E la maggior parte dei motori di database sono più intelligente di te. Anche se è meglio dividere una query in qualche modo, il database sarà scoprire se stesso.
Un esempio di testa:. Se si esegue 100 query, ci sarà molto di più il traffico tra l'applicazione e il server web
In generale, se si vuole veramente sapere qualcosa di prestazioni, punto di riferimento i vari approcci, misurare i parametri che ti interessa e prendere una decisione sulla base dei risultati della becnhmark.
In bocca al lupo!
Altri suggerimenti
Naturalmente un JOIN
sarà più veloce.
Fare domande 20
implicherà:
- Analisi li volte
20
- Fare indice
20
cerca di trovare l'inizio della gamma indice suitems
- Tornando recordsets
20
(ciascuna con il proprio metadati).
L'esecuzione di un join sarà molto più veloce e una migliore pratica
Mi unisco sarebbe molto più veloce di eseguire un'altra query sulla tabella figlio per ogni record nella tabella padre.
È inoltre possibile abilitare i dati delle prestazioni in SQL per vedere i risultati per lei ..
http://wraithnath.blogspot.com/ 2011/01 / getting-prestazioni-data-da-sql.html
N