Az adatbázis-rendszerekben a materializált nézet adatbázis-objektumként fizikai táblaként tárolja a lekérdezés előre kiszámított eredményeit. Mivel az adatok valójában lemezen vannak tárolva, a bonyolult keresések gyorsabban visszakereshetők. A nézet azonban egy virtuális tábla, amely meghatároz egy lekérdezést, de valójában nem tárol adatokat. Egy nézet a legfrissebb információkat gyűjti le az alapul szolgáló alaptáblákból, amikor lekérdezi őket. A valós idejű adathozzáférés és az előre kiszámított eredmények néhány olyan kritérium, amely meghatározza, hogy materializált vagy szabványos nézetet kell-e használni.
Mi az a materializált nézet?
A materializált nézet fizikailag tárolja az SQL-lekérdezések eredményeit az adatbázisban. A tárolt adatok meghatározott időközönként (manuálisan, periodikusan vagy automatikusan) frissíthetők, hogy a nézet az alapul szolgáló alaptáblázatok változásaihoz igazodjon.
Hogyan működik a materializált nézet?
Tegyük fel, hogy egy összetett SQL-lekérdezést szeretne végrehajtani, amely több régiónként összegzi az értékesítési adatokat. Ahelyett, hogy ezt az összetett lekérdezést minden alkalommal végrehajtaná, amikor jelentést kell készíteni, egy materializált nézetet hoz létre, amely elvégzi az eredmények előzetes kiszámítását és tárolását. Amikor a felhasználó látni akarja a jelentést, közvetlenül a megvalósult nézetből kéri le, ahelyett, hogy egy számítógépes program futása során újra kellene számítania az összesítést a futás megszakítása nélkül.
A materializált nézet általános használati esetei
- Előszámítási aggregációk: A materializált nézet kiválóan alkalmas jelentéskészítéshez és elemzéshez. Előre kiszámítja és tárolja az összesített adatokat, hogy ne kelljen időigényes lekérdezéseket újra és újra végrehajtani.
- Terhelés csökkentése összetett illesztések során: Materializált nézet jön létre a táblák összekapcsolására és az eredmény tárolására a lekérdezés végrehajtása során, ha az adatbázis több összetett összekapcsolást tartalmaz.
- A gyakran használt adatok gyorsítótárazása: A materializált nézet gyorsítótárként működik, amely tárolja az eredményeket, javítja a lekérdezések teljesítményét és csökkenti az alaptáblázatok terhelését.
Mi az a nézet?
A nézet egy virtuális tábla, amely önmagában nem tárol adatokat. A lekérdezés többször végrehajtásra kerül az alaptáblázatokkal szemben, amikor a nézethez hozzáférnek a legfrissebb eredmények létrehozásához.
Hogyan működik a nézet?
Tegyük fel, hogy sok alaptáblázata van, amelyek különböző régiókból származó ügyféladatokat tartalmaznak. Ahelyett, hogy összetett SQL-lekérdezést írna, minden alkalommal létrehozhat egy nézetet, amikor konszolidált ügyféladatokat kell megtekintenie. Majd amikor lekérdezi a nézetet, az adatokat kér le és jelenít meg az alaptáblázatok menet közbeni összekapcsolásával.
Általános felhasználási esetek
- Az összetett lekérdezések egyszerűsítése: A View összekapcsolások és szűrők összetett sorozatát képes egyetlen virtuális táblába foglalni, lehetővé téve az adatok egyszerűbb elérését a végfelhasználók számára.
- A biztonság növelése: Ha olyan nézetet definiál, amely csak bizonyos oszlopokat vagy sorokat jelenítsen meg, az alapul szolgáló adatok rejtett megőrzésével korlátozható az érzékeny adatokhoz való hozzáférés ismerete.
- Absztrakciós réteg létrehozása: A nézet segítségével absztrakciós réteget biztosíthat több táblán, így sokkal könnyebbé válik az adatok megértése és kezelése anélkül, hogy a nyers alaptáblázatokat meg kellene zavarnia.
A materializált nézet előnyei és hátrányai a nézethez képest
A materializált nézet és a nézet közötti választás magában foglalja a kompromisszumok megértését. Az alábbiakban részletesen ismertetjük az egyes megközelítések előnyeit és hátrányait.
A materializált nézet előnyei és hátrányai
| Vonatkozás | Profik | Hátrányok |
| Teljesítmény | növeli a teljesítményt az előre kiszámított eredmények megtartásával | ha nincs frissítve, elavulttá válik |
| Sebesség | csökkenti az összetett lekérdezésekre fordított időt | A kilátás megőrzéséhez több tárhelyre van szükség |
| Frissesség | rendszeresen frissíthető | Ha nem frissítik, az adatok nem mindig naprakészek |
| Erőforrás-használat | ismétlődő lekérdezések esetén kevesebb CPU-t és memóriát használnak | további erőforrásokat igényel a karbantartáshoz és a tároláshoz |
| Rugalmasság | előnyös olyan esetekben, mint az elemzés és a jelentéskészítés | nem a legjobb megoldás olyan valós idejű alkalmazásokhoz, amelyeknek új adatokra van szükségük |
| Karbantartás | automatikusan frissíthető (növekményes vagy teljes) | hatalmas adatbázisok esetén a frissítés költséges lehet |
| Összetett lekérdezések | segíti a végfelhasználókat az összetett lekérdezések megértésében | szükséges a nézet frissítéséhez az alapul szolgáló táblák frissítéséhez |
| Egyidejűség | az eredmények gyorsítótárazásával az adatbázis terhelése csökken | az adatbázis teljesítményét befolyásolja a magas frissítési gyakoriság |
A nézet előnyei és hátrányai
| Vonatkozás | Profik | Hátrányok |
| Teljesítmény | hasznos az adathozzáférés egyszerűsítésére | ha a lekérdezés több csatlakozást vagy aggregációt foglal magában, lelassul |
| Sebesség | valós idejű adatokhoz való hozzáférés a legfrissebb információkkal és késedelem nélkül | lassabb lekérdezés, különösen összetett nézet esetén |
| Frissesség | mindig naprakész a mögöttes táblázatokkal | összetett lekérdezések esetén gyenge teljesítményhez vezethet |
| Erőforrás-használat | nem igényel több tárhelyet, mivel csak a lekérdezés definícióját tartja meg | Minden végrehajtási lekérdezés újraszámítja az eredményeket |
| Rugalmasság | normál táblaként kezelhető a lekérdezésekben | nem alkalmas nagy teljesítményű elemzésekhez |
| Karbantartás | nincs szükség frissítésre, mivel automatikusan megkapja a valós idejű adatokat | a teljesítmény csökkenhet, ha nagy adatkészletek használatával gyakran hozzáférünk hozzá |
| Összetett lekérdezések | megkönnyíti a lekérdezési logikát, strukturált absztrakciót biztosítva | az előre kiszámított eredményeket nem lehet materializált nézetként tárolni |
| Egyidejűség | mindig valós idejű változásokat jelenít meg az alapul szolgáló táblákban | a nagy terhelés extra terhet róhat az adatbázisra |
Főbb különbségek a nézet és a materializált nézet között
A modern alkalmazások az adatbázisokra támaszkodnak gerincként, és az adatok vezérlését két kulcsfontosságú eszköz végzi: a materializált nézet és a nézet. Főleg az adathozzáférés egyszerűsítésére és a lekérdezési teljesítmény optimalizálására szolgálnak, céljuk azonban különbözik. Az alábbiakban néhány megkülönböztető jellemzőt mutatunk be a materializált nézet és a nézet között.
Tárolás
- Megvalósult nézet: A tényleges adatokat tárolja az adatbázisban.
- Megtekintés: Nem tárol adatokat; csak a lekérdezés definícióját tárolja.
Lekérdezés végrehajtása
- Megvalósult nézet: Előre kiszámított adatok letöltése történik, ezáltal javítva a lekérdezés teljesítményét.
- Kilátás: A lekérdezés végrehajtása minden hozzáférésnél elindul.
Adatok frissessége
- Megvalósult nézet: Az adatok elavulhatnak, hacsak nem frissítik őket kifejezetten.
- Kilátás: Mindig lekéri a legfrissebb adatokat az alapul szolgáló táblákból.
Teljesítmény
- Megvalósult nézet: Gyorsabb, mivel a korábban kiszámított adatok tárolásra kerültek.
- Kilátás: Ha a lekérdezés összetett, akkor lassabb is lehet, mivel igény szerinti.
Frissítési mechanizmus
- Megvalósult nézet: A tartalom frissítéséhez manuális vagy ütemezett frissítés szükséges.
- Kilátás: Nincs szükség frissítésre, mivel a rendszer mindig valós idejű adatokat tölt le.
Tárolási követelmény
- Megvalósult nézet: Az előre kiszámított eredmények megőrzéséhez további tárhely szükséges.
- Kilátás: Lényegében nem használ tárhelyet, kivéve a lekérdezési metaadatokat.
Használati esetek
- Megvalósult nézet: Alkalmas jelentéskészítéshez, elemzésekhez és nagy teljesítményű lekérdezésekhez.
- Kilátás: Egy lehetőség, amikor a közel valós idejű adatok elengedhetetlenek.
Bonyolultság
- Megvalósult nézet: Karbantartás és frissítés kezelés szükséges.
- Kilátás: Egyszerűen beállítható és használható, de erőforrásigényes is lehet.
Mikor érdemes a Materializált nézetet használni a nézethez képest?
A materializált nézet használata, amikor:
A materializált nézet ott van, amikor a lekérdezések teljesítményét mindenáron javítani kell, különösen akkor, ha egy ilyen lekérdezés sok számítást tartalmaz, mielőtt súlyos összesítést, összekapcsolást vagy feldolgozási műveleteket adna vissza. Különösen hasznos lehet, ha az előre kiszámított eredmények jelentős különbségeket okoznak az adatbázis terhelésében vagy a lekérdezések eredmény-visszaadási sebességében. Bár a materializált nézetet rendszeresen frissíteni kell a legfrissebb adatok eléréséhez, célt szolgálnak a jelentéskészítésben és az elemzési forgatókönyvekben, ahol a valós idejű adathozzáférés nem olyan kritikus, de a gyors végrehajtás továbbra is számít.
Megtekintés használata, amikor:
Használja azt a nézetet, ahol a lekérdezésnek mindig a legfrissebb adatokat kell lekérnie, ahol az adatok elérésének valós idejűnek kell lennie, és a lekérdezés összetettsége kezelhető, és szem előtt tartva, hogy a nézet fizikailag nem tárol adatokat az adatbázisban, így kevesebb tárhelyet igényel. Ne feledje azonban, hogy nagyon összetett lekérdezések esetén a nézet lelassíthatja a rendszert, ha többször végrehajtják.
Következtetés
Egy adatbázis teljesítményének hangolásakor fontos szempont, hogy a materializált nézet mennyire különbözik a normál nézettől. A materializált nézet olyan nézet, amely előre kiszámított eredményeket tárol a nehéz műveletek lekérdezésének felgyorsítása érdekében; azonban gondot okozhatnak a karbantartás során, mivel elhasználódhatnak, ha nem frissítik időben. Éppen ellenkezőleg, a nézet frissül az alapul szolgáló alaptáblázatok változásaihoz a valós idejű pontosság érdekében, bár ezek némi teljesítménybe kerülhetnek.
A kettő közötti döntés során vegye figyelembe az adatbázis munkaterhelését, a lekérdezés összetettségét és azt, hogy mennyire fontosak a valós idejű adatok. Jelentéskészítéshez vagy elemzéshez, ahol a teljesítmény a prioritás, a materializált nézet erős jelölt. Ezzel szemben azokban a forgatókönyvekben, ahol a legfrissebb adatok számítanak, a rendszeres nézet kívánatos.
A végső döntés a használt adatbázisrendszertől is függhet. Különféle adatbázis-rendszerek, beleértve PostgreSQL, Jóslat, és MySQL különböző szintű megvalósult nézet támogatással és képességekkel rendelkezik.