sql >> Database >  >> RDS >> Mysql

Welke is sneller een enkele grote zoekopdracht of een paar kleine zoekopdrachten?

Elke "round trip" naar de database zal wat overhead met zich meebrengen. Dus hoe minder retourvluchten, hoe minder overhead. Bedenk ook dat minder verzoeken minder pakketten van client naar server betekenen. Als het resultaat van de geconsolideerde zoekopdracht u precies geeft wat u zoekt, dan is een enkele zoekopdracht de juiste keuze. Als uw enkele zoekopdracht extra of overtollige gegevens retourneert (misschien vanwege de-normalisatie), dan kunnen de overheadbesparingen van een enkele retourvlucht verloren gaan in de extra overgedragen gegevens.

Een andere overweging is latentie. Als de query's in volgorde moeten worden voltooid omdat een deel van de uitvoer van de ene nodig is voor de invoer van de volgende, zal consolidatie in één query alle netwerklatenties tussen alle afzonderlijke kleinere query's wegnemen, zodat een eindresultaat kan sneller geleverd worden. Als de kleinere zoekopdrachten echter onafhankelijk van elkaar zijn, kan het parallel starten van alle resultaten sneller, zij het minder efficiënt, worden geleverd.

Kort gezegd:het antwoord hangt af van de specifieke kenmerken van uw situatie. De beste manier om een ​​antwoord te krijgen, is waarschijnlijk om beide manieren te implementeren, het gebruik van bronnen van elke implementatie te testen en te vergelijken.



  1. MySQL-query met meerdere AND-instructies lijkt er een te negeren

  2. Automatisch verhogen van de 'id'-waarde bij het invoegen in sqlite

  3. Wat is de beste manier om decimale / dubbele / zwevende waarden te binden met PDO in PHP?

  4. MySQL:Toegang geweigerd voor gebruiker 'gebruiker'@'IP_ADDRESS' - Externe toegang toegestaan ​​voor sommige hosts mislukt voor andere hosts