V databázových systémech materializovaný pohled jako databázový objekt ukládá předem vypočítané výsledky dotazu jako fyzickou tabulku. Vzhledem k tomu, že data jsou ve skutečnosti uložena na disku, lze komplikované vyhledávání získat rychleji. Pohled je však virtuální tabulka, která definuje dotaz, ale ve skutečnosti neuchovává data. Pohled získává nejnovější informace z podkladových základních tabulek, kdykoli na něj zadáte dotaz. Přístup k datům v reálném čase vs. předem vypočítané výsledky jsou některá z kritérií, která určují, zda použít materializované zobrazení nebo standardní zobrazení.
Co je to materializovaný pohled?
Materializovaný pohled fyzicky ukládá výsledky dotazu SQL do databáze. Uložená data lze obnovovat v určených intervalech (ručně, periodicky nebo automaticky), aby byl pohled upraven podle změn v podkladových základních tabulkách.
Jak funguje materializované zobrazení?
Řekněme, že chcete provést složitý SQL dotaz, který shrnuje údaje o prodeji podle více oblastí. Namísto provádění tohoto složitého dotazu pokaždé, když je třeba vygenerovat sestavu, vytvoříte materializovaný pohled, který provede předvýpočet a uložení výsledků. Když chce uživatel zprávu vidět, načte se přímo z materializovaného pohledu, místo aby musel přepočítávat agregace během běhu počítačového programu bez přerušení běhu.
Běžné případy použití materializovaného pohledu
- Předvýpočetní agregace: Materializované zobrazení je skvělé pro vytváření sestav a analýzy. Předpočítává a ukládá agregovaná data, takže časově náročné dotazy není třeba provádět znovu a znovu.
- Snížení zátěže během složitých spojení: Materializované zobrazení je vytvořeno pro spojení tabulek a uložení výsledku během provádění dotazu, když databáze obsahuje více komplexních spojení.
- Ukládání často používaných dat do mezipaměti: Materializované zobrazení funguje jako mezipaměť, která uchovává výsledky, zlepšuje výkon dotazů a snižuje zatížení základních tabulek.
Co je pohled?
Pohled je virtuální tabulka, která sama o sobě neukládá data. Dotaz se provede několikrát proti základním tabulkám, kdykoli se přistoupí k zobrazení, aby se vytvořily nejnovější výsledky.
Jak View funguje?
Předpokládejme, že máte mnoho základních tabulek obsahujících informace o zákaznících z různých oblastí. Vytvoříte pohled namísto psaní složitého SQL dotazu pokaždé, když potřebujete zobrazit konsolidovaná data zákazníků. Když pak zadáte dotaz na pohled, načte a zobrazí data tak, že se základní tabulky za běhu spojí.
Běžné případy použití
- Zjednodušení složitých dotazů: View dokáže zapouzdřit komplexní řadu spojení a filtrů do jedné virtuální tabulky, což koncovým uživatelům umožňuje jednodušší přístup k datům.
- Zvýšení bezpečnosti: Definováním pohledu tak, aby se zobrazovaly pouze určité sloupce nebo řádky, je možné omezit znalosti o přístupu k citlivým datům zachováním skrytých podkladových dat.
- Vytvoření abstrakce vrstvy: Zobrazení můžete použít k poskytnutí abstrakční vrstvy nad více tabulkami, což usnadňuje pochopení a správu dat, aniž byste museli zasahovat do nezpracovaných základních tabulek.
Výhody a nevýhody materializovaného pohledu vs. pohled
Volba mezi materializovaným pohledem a pohledem vyžaduje pochopení kompromisů. Níže jsou podrobně uvedeny výhody a nevýhody každého přístupu.
Výhody a nevýhody materializovaného pohledu
| Aspekt | Pros | Nevýhody |
| Výkon | zvyšuje výkon zachováním předem vypočítaných výsledků | pokud není aktualizován, zastará se |
| Rychlost | zkracuje čas strávený složitými dotazy | Pro zachování zobrazení je potřeba větší úložiště |
| Svěžest | lze pravidelně aktualizovat | Pokud nejsou data aktualizována, nejsou vždy aktuální |
| Využití zdrojů | pro opakované dotazy se spotřebuje méně CPU a paměti | vyžaduje další zdroje pro údržbu a skladování |
| Flexibilita | užitečné pro případy, jako je analytika a reporting | není nejlepší volbou pro aplikace v reálném čase, které potřebují nová data |
| Údržba | lze automaticky aktualizovat (přírůstkové nebo úplné) | u velkých databází může být aktualizace nákladná |
| Komplexní dotazy | pomáhá koncovým uživatelům porozumět složitým dotazům | nutné aktualizovat pohled za účelem aktualizace podkladových tabulek |
| Souběžnost | ukládáním výsledků do mezipaměti se snižuje zatížení databáze | výkon databáze je ovlivněn vysokou obnovovací frekvencí |
Výhody a nevýhody pohledu
| Aspekt | Pros | Nevýhody |
| Výkon | užitečné pro zjednodušení přístupu k datům | pokud dotaz zahrnuje více spojení nebo agregací, zpomalí se |
| Rychlost | přístup k datům v reálném čase s nejnovějšími informacemi a bez zpoždění | pomalejší dotaz, zvláště když je zobrazení složité |
| Svěžest | vždy aktuální s podkladovými tabulkami | může vést ke špatnému výkonu u složitých dotazů |
| Využití zdrojů | nebude vyžadovat žádné další úložiště, protože uchovává pouze definici dotazu | Každý prováděcí dotaz přepočítává výsledky |
| Flexibilita | lze v dotazech zacházet jako s běžnou tabulkou | není vhodný pro analýzy náročné na výkon |
| Údržba | není potřeba žádná aktualizace, protože získává data v reálném čase automaticky | výkon může být snížen při častém přístupu pomocí velkých datových sad |
| Komplexní dotazy | usnadňuje logiku dotazů a poskytuje strukturovanou abstrakci | předem vypočítané výsledky nelze uložit jako materializovaný pohled |
| Souběžnost | vždy zobrazuje změny v podkladových tabulkách v reálném čase | velké zatížení by mohlo dát databázi extra váhu |
Klíčové rozdíly mezi pohledem a materializovaným pohledem
Moderní aplikace spoléhají na databáze jako na páteř a kontrolu dat zajišťují dva klíčové nástroje: materializovaný pohled a pohled. Existují především pro zjednodušení přístupu k datům a optimalizaci výkonu dotazů, liší se však svým účelem. Následuje několik rozlišovacích znaků mezi materializovaným pohledem a pohledem.
Skladování
- Materializovaný pohled: Ukládá aktuální data do databáze.
- Zobrazit: Neukládá data; ukládá pouze definici dotazu.
Provedení dotazu
- Materializovaný pohled: Načítají se předem vypočítaná data, čímž se zvyšuje výkon dotazů.
- Pohled: Spouštění dotazu je zahájeno při každém přístupu.
Čerstvost dat
- Materializovaný pohled: Data mohou být zastaralá, pokud nejsou výslovně obnovena.
- Pohled: Vždy načítá nejnovější data z podkladových tabulek.
Výkon
- Materializovaný pohled: Je to rychlejší, protože byla uložena dříve vypočítaná data.
- Pohled: Pokud je dotaz složitý, může být pomalejší, protože je na vyžádání.
Obnovovací mechanismus
- Materializovaný pohled: Aktualizace obsahu vyžaduje ruční nebo plánovanou aktualizaci.
- Pohled: Není nutné žádné obnovení, protože data v reálném čase jsou vždy načítána.
Požadavek na skladování
- Materializovaný pohled: Vyžaduje nějaké další úložiště pro zachování předem vypočítaných výsledků.
- Pohled: Nepoužívá v podstatě žádné úložiště kromě metadat dotazů.
Případy použití
- Materializovaný pohled: Vhodné pro vytváření sestav, analýzy a dotazy náročné na výkon.
- Pohled: Možnost, když jsou data téměř v reálném čase nutností.
Složitost
- Materializovaný pohled: Potřebná správa údržby a obnovy.
- Pohled: Jednoduché nastavení a použití, ale může být náročné na zdroje.
Kdy použít materializované zobrazení vs. zobrazení
Použít materializované zobrazení, když:
Materializovaný pohled je tam, kde je třeba za každou cenu zlepšit výkon dotazů, zvláště pokud takový dotaz zahrnuje spoustu výpočtů, než vrátí výsledky s těžkou agregací, spojeními nebo operacemi zpracování. To může být užitečné zejména tehdy, když předpočítané výsledky mají velké rozdíly v zatížení databáze nebo rychlosti, jakou dotazy vracejí výsledky. Ačkoli materializovaný pohled vyžaduje pravidelné obnovování, aby získal nejnovější aktualizovaná data, slouží účelu v reportovacích a analytických scénářích, kde přístup k datům v reálném čase není tak kritický, ale rychlé provádění stále platí.
Použít zobrazení, když:
Použijte zobrazení, kde by měl dotaz vždy načítat nejnovější data, kde přístup k datům musí být v reálném čase a složitost dotazu lze spravovat a mějte na paměti, že pohled neukládá data fyzicky do databáze, a proto vyžaduje menší úložiště. Pamatujte však, že u velmi složitých dotazů může zobrazení při opakovaném spuštění zpomalit systém.
Závěr
Jak se materializovaný pohled liší od běžného pohledu, je důležitý koncept při ladění výkonu databáze. Materializovaný pohled je pohled, který ukládá předem vypočítané výsledky pro urychlení dotazu pro náročné operace; mohou však být problematické při údržbě, protože pokud nebudou včas obnoveny, mohou zatuchnout. Naopak, pohled je aktualizován kvůli změnám z podkladových základních tabulek pro přesnost v reálném čase, i když mohou stát určitý výkon.
Při rozhodování mezi nimi zvažte své vytížení databáze, složitost dotazu a důležitost dat v reálném čase. Pro reporting nebo analýzy, kde je prioritou výkon, je materializovaný pohled silným kandidátem. Naproti tomu u scénářů, kde záleží na nejnovějších datech, je pravidelné zobrazení žádoucí.
Konečné rozhodnutí může také záviset na použitém databázovém systému. Různé databázové systémy, včetně PostgreSQL, Věšteca MySQL mají různé úrovně podpory a schopností materializovaného pohledu.