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

Mysql Union time V.S. samostatný dotaz jeden po druhém

UNION operátor vyžaduje, aby byly z výsledné sady odstraněny duplicitní n-tice (řádky), než budou vráceny jakékoli řádky. To je ve skutečnosti operace SORT UNIQUE. To je relativně levné pro malé sady výsledků, ale pro velké sady to může být náročné na zdroje na serveru (tj. trvat dlouho.)

Teoreticky jde o kombinaci dotazů s UNION ALL operátor spíše než UNION operátor by byl nejrychlejší, protože by eliminoval (n -1) zpáteční cesty do databáze vs samostatné spouštění dotazů. Ale pro velké hodnoty n , narazíte na praktická omezení velikosti textu SQL (maximální velikost paketu).

Máte na výběr mezi UNION operátor a samostatné dotazy, pro velkou sadu výsledků budou samostatné dotazy méně náročné na zdroje na straně serveru.

Stručně řečeno, je to skutečně kompromis mezi těžkou zátěží pro každý dotaz a těžkou zátěží operace SORT UNIQUE.



  1. Převést hodnotu mysql LONGTEXT na hodnotu VARCHAR?

  2. Aktualizace sloupce MySQL, který obsahuje ve svém názvu tečku (.).

  3. Jak přesunout sloupce v tabulce MySQL?

  4. Někdy MŮŽETE převést sloupec na místě