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

Který z nich je rychlejší jeden velký dotaz nebo málo malých dotazů?

Každá "okružní cesta" do databáze bude mít nějakou režii. Takže čím méně okružních jízd, tím méně režie. Zvažte také, že méně požadavků znamená méně paketů z klienta na server. Pokud vám výsledek konsolidovaného dotazu dá přesně to, co chcete, pak je správným řešením jediný dotaz. Pokud váš jediný dotaz vrací nadbytečná nebo nadbytečná data (pravděpodobně z důvodu denormalizace), mohou se úspory režijních nákladů za jednu zpáteční cestu ztratit v přenesených extra datech.

Dalším aspektem je latence. Pokud musí být dotazy dokončeny postupně, protože některá část výstupu jednoho je potřebná pro vstup dalšího, konsolidace do jednoho dotazu odstraní všechny síťové latence mezi všemi jednotlivými menšími dotazy, takže konečný výsledek může být být doručen rychleji. Pokud jsou však menší dotazy na sobě nezávislé, jejich paralelním spouštěním lze všechny výsledky doručit rychleji, i když méně efektivně.

Sečteno a podtrženo:odpověď závisí na specifikách vaší situace. Nejlepším způsobem, jak získat odpověď, bude pravděpodobně implementace obou způsobů, testování a porovnání využití zdrojů každé implementace.



  1. příkaz UPDATE pro opětovné přiřazení hodnoty sloupce podle číselného vzorce

  2. Anotace @OnDelete Hibernate negeneruje ON DELETE CASCADE pro MySql

  3. Nasazení MySQL, MariaDB, Percona Server, MongoDB nebo PostgreSQL – snadné s ClusterControl

  4. jak používat uloženou proceduru WHERE IN mysql