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

Jsou MySql Views dynamické a efektivní?

V zásadě existují v zásadě 2 typy zobrazení v MySQL.

  1. Sloučit zobrazení

    Tento typ pohledu v podstatě pouze přepisuje vaše dotazy pomocí SQL pohledu. Takže je to zkratka pro psaní dotazů sami. To nenabízí žádnou skutečnou výkonnostní výhodu, ale usnadňuje psaní složitých dotazů a usnadňuje údržbu (protože pokud se změní definice pohledu, není třeba měnit 100 dotazů proti pohledu, pouze jednu definici).

  2. Temptable Views

    Tento typ pohledu vytvoří dočasnou tabulku s dotazem z SQL pohledu. Má všechny výhody sloučeného zobrazení, ale také snižuje čas uzamčení tabulek zobrazení. Proto na vysoce zatížených serverech může mít poměrně významný nárůst výkonu.

K dispozici je také typ zobrazení "Nedefinováno" (výchozí), který umožňuje MySQL vybrat, co považuje za nejlepší typ v době dotazu...

Ale všimněte si, co je důležité si uvědomit, že MySQL nemá žádnou podporu pro materializované pohledy . Není to tedy jako u Oracle, kde komplexní pohled výrazně zvýší výkon dotazů proti němu. Dotazy pohledů jsou vždy prováděny v MySQL.

Pokud jde o efektivitu, pohledy v MySQL nezvyšují ani nesnižují efektivitu. Jsou tu, aby vám usnadnili život při psaní a údržbě dotazů. Použil jsem pohledy na tabulky se stovkami milionů řádků a fungovaly dobře...



  1. Spring Boot JPA:jak dotazovat sloupec JSON v tabulce

  2. Mysql:Výběr hodnot mezi dvěma sloupci

  3. Úplné ignorování časových pásem v Rails a PostgreSQL

  4. jak seskupovat a počítat pomocí MySQL