V databázových systémech materializovaný pohled ukládá předpočítané výsledky dotazu jako fyzickou tabulku. Protože jsou data skutečně uložena na disku, složitá vyhledávání se načítají rychleji. Pohled je však virtuální tabulka, která dotaz definuje, ale skutečná data nedrží. Pohled pokaždé, když ho dotazujete, načítá nejnovější informace ze základních tabulek. Přístup k datům v reálném čase versus předpočítané výsledky jsou kritéria, která určují, zda použít materializovaný pohled nebo standardní pohled.
Co je materializovaný pohled?
Materializovaný pohled fyzicky ukládá výsledky SQL dotazu do databáze. Uložená data se lze obnovit v určitých intervalech (ručně, periodicky nebo automaticky), aby pohled zůstal synchronizovaný se změnami v základních tabulkách.
Jak materializovaný pohled funguje?
Řekněme, že chcete spustit složitý SQL dotaz, který shrne prodejní data podle několika regionů. Místo spouštění tohoto složitého dotazu pokaždé, když musí být vygenerován report, vytvoříte materializovaný pohled, který provede předpočítání a uložení výsledků. Když chce uživatel vidět report, načte jej přímo z materializovaného pohledu, místo aby musel znovu počítat agregace během běhu programu.
Běžné případy použití materializovaného pohledu
- Předvýpočet agregací: Materializovaný pohled je skvělý pro reportování a analýzu. Předpočítá a uloží agregovaná data, takže časově náročné dotazy se nemusí spouštět znovu a znovu.
- Snížení zatížení při složitých spojeních: Materializovaný pohled se vytvoří pro spojení tabulek a uložení výsledku během spouštění dotazu, když databáze obsahuje více složitých spojení.
- Ukládání často přistupovaných dat: Materializovaný pohled funguje jako mezipaměť, která drží výsledky, zlepšuje výkon dotazů a snižuje zátěž na základní tabulky.
Co je View?
Pohled je virtuální tabulka, která sama o sobě data neukládá. Dotaz se spustí tolikrát, kolikrát je pohled přístupný, aby vytvořil nejnovější výsledky.
Jak pohled funguje?
Předpokládejme, že máte spoustu základních tabulek obsahujících informace o zákaznících z různých regionů. Místo napsání složitého SQL dotazu pokaždé, když potřebujete vidět konsolidovaná data o zákaznících, vytvoříte pohled. Když pak pohled dotazujete, načte a zobrazí data spojením základních tabulek za chodu.
Běžné případy použití pohledu
- Zjednodušení složitých dotazů: Pohled může zapouzdřit složitou ř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í zabezpečení: Definováním pohledu, který zobrazí pouze určité sloupce nebo řádky, je možné omezit přístup k citlivým datům udržením základních dat skrytých.
- Vytvoření abstrakční vrstvy: Pohled můžete použít k poskytnutí abstrakční vrstvy nad více tabulkami, čímž se data stanou lépe srozumitelná a lépe spravovatelná bez nutnosti zasahovat do surových základních tabulek.
Výhody a nevýhody materializovaného pohledu versus pohledu
Výběr mezi materializovaným pohledem a pohledem spočívá v pochopení kompromisů. Níže jsou uvedeny podrobné výhody a nevýhody každého přístupu.
Výhody a nevýhody materializovaného pohledu
| Aspekt | Výhody | Nevýhody |
| Výkon | zlepšuje výkon ukládáním předpočítaných výsledků | pokud se neaktualizuje, stane se zastaralým |
| Rychlost | zkracuje dobu potřebnou na komplexní dotazy | uchování pohledu vyžaduje více místa na disku |
| Čerstvost | lze aktualizovat pravidelně | bez aktualizace nejsou data vždy aktuální |
| Využití prostředků | u opakujících se dotazů se používá méně CPU a paměti | vyžaduje dodatečné prostředky na údržbu a úložiště |
| Flexibilita | přínosný pro případy jako analytika a reportování | není ideální volbou pro aplikace v reálném čase, které potřebují aktuální data |
| Údržba | lze automaticky aktualizovat (inkrementálně nebo úplně) | u velkých databází může být obnovování nákladné |
| Složité dotazy | pomáhá koncovým uživatelům pochopit komplexní dotazy | je třeba obnovit pohled, aby se aktualizovaly podkladové tabulky |
| Souběžnost | mezipaměť výsledků snižuje zátěž na databázi | vysoká frekvence obnovení negativně ovlivňuje výkon databáze |
Výhody a nevýhody pohledu
| Aspekt | Výhody | Nevýhody |
| Výkon | užitečný pro zjednodušení přístupu k datům | dotaz s více spojovacími operacemi nebo agregacemi je pomalý |
| Rychlost | přístup k aktuálním datům s nejnovějšími informacemi bez zpoždění | pomalejší dotaz, zejména když je pohled složitý |
| Čerstvost | vždy aktuální s podkladovými tabulkami | může vést ke špatnému výkonu u komplexních dotazů |
| Využití prostředků | nevyžaduje žádné další místo, protože uchová pouze definici dotazu | Každé spuštění dotazu znovu vypočítá výsledky |
| Flexibilita | lze zacházet jako s běžnou tabulkou v dotazech | nevhodné pro analytiku náročnou na výkon |
| Údržba | není potřeba aktualizace, protože automaticky získává data v reálném čase | výkon se může zhoršit při časté práci s velkými datovými sadami |
| Složité dotazy | zjednodušuje logiku dotazů poskytnutím strukturované abstrakce | předpočítané výsledky nelze ukládat jako materializovaný pohled |
| Souběžnost | vždy zobrazuje změny v reálném čase v podkladových tabulkách | vysoká zátěž může vytvořit další tlak na databázi |
Klíčové rozdíly mezi pohledem a materializovaným pohledem
Moderní aplikace se spoléhají na databáze jako na svůj základ a správu dat zajišťují dva klíčové nástroje: materializovaný pohled a pohled. Existují především proto, aby zjednodušily přístup k datům a optimalizovaly výkon dotazů, ale liší se svým účelem. Zde je několik rozlišujících vlastností mezi materializovaným pohledem a pohledem.
Úložiště
- Materializované zobrazení: Ukládá skutečná data v databázi.
- Pohled: neukládá data; uchovává pouze definici dotazu.
Provádění dotazu
- Materializované zobrazení: Předpočítaná data jsou načtena, čímž se zlepšuje výkon dotazů.
- Zobrazení: Spuštění dotazu se iniciuje při každém přístupu.
Čerstvost dat
- Materializované zobrazení: Data se mohou zastarávat, pokud nejsou explicitně obnovena.
- Zobrazení: Vždy načítá nejnovější data z podkladových tabulek.
Výkon
- Materializované zobrazení: Je rychlejší, protože dříve vypočítaná data jsou již uložena.
- Zobrazení: Pokud je dotaz složitý, může být pomalejší, protože se zpracovává na vyžádání.
Mechanismus aktualizace
- Materializované zobrazení: Vyžaduje ruční nebo plánovanou aktualizaci obsahu.
- Zobrazení: Aktualizace není potřebná, protože data v reálném čase jsou vždy načítána.
Požadavek na úložiště
- Materializované zobrazení: Vyžaduje dodatečné úložiště pro uchování předpočítaných výsledků.
- Zobrazení: Používá prakticky žádné úložiště kromě metadat dotazu.
Případy použití
- Materializované zobrazení: Vhodné pro reportování, analytiku a dotazy náročné na výkon.
- Zobrazení: Možnost, když jsou potřebná data téměř v reálném čase.
Složitost
- Materializované zobrazení: Vyžaduje údržbu a správu aktualizací.
- Zobrazení: Jednoduché nastavení a používání, ale může být náročné na zdroje.
Kdy použít materializovaný pohled vs. normální pohled
Materializovaný pohled použijte, když:
Materializovaný pohled je řešení, když je zlepšení výkonu dotazů rozhodující, zvláště pokud dotaz zahrnuje složité výpočty, těžkou agregaci, joinování nebo komplexní operace zpracování. Může být zvlášť prospěšný, když předpočítané výsledky výrazně snižují zátěž databáze nebo zrychlují návrat dotazů. Ačkoli materializovaný pohled vyžaduje periodické aktualizace, aby měl nejnovější data, je nenahraditelný v reportovacích a analytických scénářích, kde není reálný čas kritický, ale rychlost spuštění ano.
Normální pohled použijte, když:
Použijte normální pohled, pokud chcete vždy získat nejnovější data, když je přístup v reálném čase nezbytný a složitost dotazu je zvládnutelná. Pamatujte, že normální pohled neukládá data fyzicky v databázi, čímž šetří úložiště. Upozorňujeme však, že u velmi složitých dotazů by opakované spuštění normálního pohledu mohlo zpomalit systém.
Závěr
Rozdíl mezi materializovaným pohledem a normálním pohledem je klíčový při optimalizaci výkonu databáze. Materializovaný pohled ukládá předpočítané výsledky, aby se urychlily těžké operace, ale může být náročný na údržbu, protože může zastarávat bez včasné aktualizace. Normální pohled se naopak aktualizuje podle změn v podkladových tabulkách, což zajišťuje aktuálnost dat, ale může stát jistý výkon.
Při rozhodování mezi nimi vezměte v úvahu zatížení vaší databáze, složitost dotazů a důležitost reálných dat. Pokud je prioritou výkon v reportovacích nebo analytických scénářích, je materializovaný pohled silnou volbou. Naopak v situacích, kdy jsou důležitá aktuální data, je lepší volbou normální pohled.
Konečné rozhodnutí také závisí na používaném systému databází. Různé databázové systémy, včetně PostgreSQL, Oracle, a MySQL mají různou úroveň podpory a možností pro materializované pohledy.