Jednak w przeciwieństwie do bazy danych PostgreSQL lub Oracle, MySQL nie natywnie obsługuje zmaterializowane widoki, co może być ogromną wadą. To jednak nie jest powód, aby przestać używać MySQL, ponieważ jest to świetna baza danych dla głównych aplikacji.
W tym samouczku szybko omówimy, jakie są zmaterializowane poglądy, jak działają, przypadki, w których mają zastosowanie i jak wdrożyć zmaterializowane poglądy w MySQL.
NOTATKA: Zakładam, że masz podstawową wiedzę mysql przed zanurzeniem się w tym przewodniku.
Jakie są zmaterializowane widoki?
Zateratyzowane widoki są wstępnie obliczonymi wynikami zapytania przechowywanego w tabeli. W przeciwieństwie do standardowego widoku MySQL, zmaterializowany widok nie jest oknem na tabelę bazy danych; przechowuje rzeczywiste dane.
Te typy obiektów są bardzo przydatne, gdy potrzebujesz natychmiastowego dostępu do danych, a regularne zapytanie MySQL zajęłoby trochę czasu na przetworzenie. Dobrym przykładem są przypadki z dużym zestawem danych, który wymaga wielu obliczeń.
Ponieważ zmaterializowane widoki zawierają rzeczywiste dane, wymagają odświeżenia, aby odzwierciedlić wartości zaktualizowane z tego samego zapytania. Odstęp odświeżania dla zmaterializowanego widoku zależy od przechowywanej zawartości i tego, jak szybko zmieniają się dane.
Czy MySQL obsługuje zmaterializowane widoki?
Prostą odpowiedzią jest: nie. W MySQL nie ma jednego polecenia, które możesz uruchomić, aby uzyskać zmaterializowany widok. Na przykład nie możesz wpisać poniższego polecenia i uzyskać to, czego potrzebujesz:
Mysql> Utwórz zmaterializowany widok…Na szczęście, z kilkoma sztuczkami i narzędziami dostarczanymi natywnie przez MySQL, możemy zaimplementować zmaterializowany widok podobny do jednego natywnie dostarczonego przez PostgreSQL, Oracle i innych.
Jak stworzyć zmaterializowany widok w MySQL
W tej sekcji pokażę ci sposób na wdrożenie zmaterializowanego widoku w MySQL.
NOTATKA: Chociaż ta metoda warsztatów ilustruje sposób utworzenia zmaterializowanego widoku w MySQL, nie będzie idealna we wszystkich bazach danych.
Załóżmy, że mamy schemat o nazwie (MV), który ma tabelę o nazwie Info, używana do przechowywania informacji o sprzedaży, jak pokazano w poniższych zapytaniach:
Utwórz schemat MV;Korzystając z przykładowej tabeli powyżej, możemy utworzyć zmaterializowaną tabelę, która przechowuje informacje o zapytaniu, takim jak ta pokazana poniżej:
Wybierz Seller_id, _date, suma (kwota * 12 * 8) jako total_amount z informacji, gdzie _date < CURRENT_DATE ORDER BY seller_id;Zapytanie może nie wydawać się skuteczne, biorąc pod uwagę rozmiar bazy danych i informacje przechowywane w powyższej tabeli, ponieważ będą przetwarzane bardzo szybko. Jednak w dużej bazie danych z wieloma informacjami zapytanie takie jak powyższe może zająć trochę czasu na przetworzenie.
W takim przypadku możemy utworzyć zmaterializowany widok do przechowywania informacji z powyższego zapytania, umożliwiając nam szybszy dostęp do informacji, po prostu wybierając je z widoku inaczej niż za każdym razem, używając zapytania surowego.
Aby utworzyć zmaterializowany widok, możemy utworzyć tabelę z wynikami powyższego zapytania:
Utwórz tabelę materializowane_view (Jak odświeżyć zmaterializowany widok
Jak teraz wiesz, zmaterializowany widok zawiera prawdziwe dane; To nie jest migawka stołu.
Oznacza to, że jeśli główna tabela zostanie zaktualizowana, dane w tabeli zmaterializowanego widoku będą wymagały odświeżenia.
Aby odświeżyć zmaterializowany widok, możemy użyć procedury pokazanej poniżej:
Separator $$Następnie spróbuj zaktualizować dane przechowywane w głównej tabeli jako:
Wstaw do informacji (Seller_id, _Date, kwota) wartości (101, „2021-01-05”, 200), (111, „2021-01-05”, 600), (121, „2021-02-05”, 1000), („131”, „2021-01-05”, 6000), („141”, „2021-01-05”, 1400);Na koniec spróbuj zaktualizować dane Tabela Materiatyzed_View za pomocą procedury, którą utworzyliśmy powyżej.
Call Refresh_materialv (@Dev);To wyświetla wartości w zaktualizowanej tabeli wyświetlania zmaterializowanego.
Wniosek
W tym samouczku omówiono, jakie są zmaterializowane poglądy, jak działają i jak możesz je wdrożyć podczas korzystania z MySQL. Zastanów się nad praktykowaniem koncepcji nauczanych w tym samouczku, aby opanować pracę z zmaterializowanymi poglądami.