Najlepszy sposób na stworzenie zmaterializowanego widoku w MySQL


19

Korzystam z MySQL 5.6. Nie jestem w stanie stworzyć zmaterializowanego widoku, jak to możliwe w Oracle. Widziałem jedno lub dwa rozwiązania, takie jak Flexview.

Czy ktoś może mi powiedzieć najlepszy sposób na stworzenie zmaterializowanego widoku w MySQL (automatyczne odświeżanie jak w Oracle) przy minimalnym stopniu złożoności?

Odpowiedzi:


11

Widoki zmaterializowane nie istnieją w MySQL.

Flexviews był wcześniej zalecany w DBA StackExchange

Ponieważ już go masz, konieczne może być trochę staranności i smarowanie łokcia z twojej strony, aby móc go dalej używać (jeśli jeszcze tego nie zrobiłeś)

ALTERNATYWA # 1

Możesz zajrzeć do konfigurowania tabel podsumowań. Będziesz musiał zindeksować swoje tabele podstawowe w celu obsługi agregacji przed budowaniem tabel podsumowań.

ALTERNATYWA # 2

Oto stary post z http://www.materialized.info/, który ma bardziej praktyczną i intrygującą strategię. Wymaga użycia wyzwalaczy. Wygląda na to, że może być fajnie ...

ALTERNATYWA # 3

Jeśli tabele podstawowe nie są tak duże i możesz przeszukiwać zapytania dotyczące całych tabel raz w tygodniu, wypróbuj User Commentssekcję Dokumentacja MySQL na temat tworzenia widoku . Wyszukaj słowo materializedna tej stronie.


W najnowszej wersji MySQL możesz utworzyć zmaterializowaną tabelę dba.stackexchange.com/a/226707/50702
Revious

1

Znalazłem 2 możliwe rozwiązania zmaterializowanych widoków w MySQL:

  1. Utwórz tabelę agregacji ze wszystkimi niezbędnymi danymi, a następnie utwórz wyzwalacze w tabelach, z których pochodzą dane.

  2. Utwórz harmonogram, który okresowo agreguje dane w tabeli

Zobacz więcej szczegółów na temat implementacji 2 opcji w moim blogu tutaj: widok zmaterializowany MySQL


0

Jeśli twoje podstawowe dane są w większości stabilne lub możesz tolerować różnicę między widokiem a danymi, zastanów się nad użyciem narzędzi do prostej roli , które napisałem, aby rozwiązać ten przypadek użycia. Umożliwiają one pisanie w osobnych plikach złożonych zapytań SQL generujących tabele. Relacje między zapytaniami są generowane automatycznie, a zapytania są wykonywane w odpowiedniej kolejności za pomocą narzędzia do tworzenia Uniksa . Aby odświeżyć wygenerowane tabele, musisz uruchomić make clean all. Narzędzie jest szczególnie przydatne do stopniowego budowania wyrafinowanych zapytań, które wykonują się skutecznie w oparciu o wstępnie obliczone wyniki swoich danych wejściowych.


Prawdopodobnie powinieneś zwiększyć widoczność ujawnienia (że jesteś autorem narzędzia).
mustaccio,

Słuszna uwaga! Zredagowałem odpowiedź, aby to wyjaśnić.
Diomidis Spinellis,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.