sql >> Databasteknik >  >> RDS >> Mysql

Vilken är snabbare en enda stor fråga eller få små frågor?

Varje "tur och retur" till databasen kommer att ha vissa omkostnader. Så ju färre rundresor, desto mindre omkostnader. Tänk också på att färre förfrågningar betyder färre paket från klient till server. Om resultatet av den konsoliderade frågan ger dig precis vad du vill ha, är en enda fråga rätt väg att gå. Om din enstaka förfrågan returnerar extra eller redundant data (kanske på grund av denormalisering) kan kostnadsbesparingarna för en enkel tur och retur gå förlorade i den extra data som överförs.

En annan faktor är latens. Om frågorna måste slutföras i sekvens eftersom någon del av utdata från en behövs i inmatningen av nästa, kommer konsolidering till en fråga att skära ut alla nätverkslatenser mellan alla individuella mindre frågor, så att ett slutresultat kan levereras snabbare. Men om de mindre frågorna är oberoende av varandra kan en lansering av dem parallellt få alla resultat levererade snabbare, om än mindre effektivt.

Sammanfattning:svaret beror på detaljerna i din situation. Det bästa sättet att få ett svar är förmodligen att implementera åt båda hållen, testa och jämföra resursanvändningen för varje implementering.



  1. Varför flyter MySQL round mycket mer än förväntat?

  2. Behöver jag uppdatera min enanvändarappdatabas för att tillåta flera användare, hur ändrar man databasschemat?

  3. Kan jag lita på att användningssatsen stänger mina MySQL-anslutningar?

  4. MySQL gatuadress suddig sökning