PostgreSQL

Jak używać zmaterializowanych widoków PostgreSQL

Jak używać zmaterializowanych widoków PostgreSQL

Widoki w PostgreSQL to graficzne tabele, które wyświetlają dane z odpowiednich tabel. Można również modyfikować wspólne widoki. PostgreSQL przenosi koncepcję widoków do następnego etapu, umożliwiając widokom przechowywanie informacji w sposób materialny, zwanych widokami zmaterializowanymi. Zmaterializowany widok zachowuje dane wyjściowe czasochłonnego, skomplikowanego zapytania, umożliwiając szybkie zapytanie o wyniki w dowolnym momencie. Zmaterializowane punkty widzenia są często używane w hurtowniach danych i aplikacjach Business Intelligence, ponieważ są pomocne w sytuacjach wymagających szybkiego dostępu do danych.

Dlaczego warto korzystać z widoków zmaterializowanych?

Jeśli polecenie widoku jest dla Ciebie zbyt powolne, możesz użyć widoku zmaterializowanego. Widoki zmaterializowane cechują się dużą wszechstronnością, umożliwiając zachowanie reprezentacji w materiale w bazie danych przy krótszych czasach dostępu. Załóżmy, że musisz utworzyć zapytanie do bazy danych, aby połączyć kilka tabel, usunąć wiersze z połączonej kolekcji i posortować tabele na różne sposoby. Może to być skomplikowane i czasochłonne zapytanie, a bez widoków zmaterializowanych będziesz korzystać z widoku zmaterializowanego, aby rozwiązać ten dylemat. Z tego artykułu dowiesz się, jak używać widoków zmaterializowanych w PostgreSQL.

Składnia

>> CREATE MATERIALIZED VIEW view_name AS zapytanie Z [NIE] DANYMI;

Wyjaśnienie tego ogólnego poglądu jest następujące:

Jak korzystać z widoków zmaterializowanych

Uruchom powłokę wiersza poleceń PostgreSQL, aby rozpocząć pracę nad widokami zmaterializowanymi.

Podaj nazwę serwera, bazę danych, na której chcesz pracować, numer portu i nazwę użytkownika, aby rozpocząć korzystanie z powłoki poleceń. Zostaw te miejsca puste, jeśli chcesz użyć domyślnego systemu.

Przykład 1: Widok prosty

Aby zrozumieć zmaterializowany pogląd, musisz najpierw zrozumieć proste poglądy. Tak więc utwórz nową tabelę „Student” za pomocą polecenia CREATE TABLE, jak dołączono.

>> CREATE TABLE Student (sid serial PRIMARY KEY, sname VARCHAR(100) NOT NULL, wiek VARCHAR(100) NOT NULL);

Następnie wstaw do niego dane za pomocą zapytania INSERT.

Pobierz rekordy tabeli „Student” za pomocą instrukcji SELECT dla prostego widoku.

>> WYBIERZ * OD Studenta;

Przykład 2: Prosty zmaterializowany widok

Teraz nadszedł czas, aby omówić zmaterializowany pogląd. Użyjemy tabeli „Student”, aby stworzyć zmaterializowany widok. Stworzymy zmaterializowany widok o nazwie 'std_view' za pomocą polecenia 'CREATE MATERIALIZED VIEW'. W tym widoku pobierzemy pole imienia ucznia 'sname' z tabeli 'Student', pogrupowane i posortowane w porządku rosnącym w kolumnie 'sname'.

>> CREATE MATERIALIZED VIEW std_view AS SELECT sname Z GRUPY UCZNIÓW BY sname ORDER BY sname;

Teraz, używając zapytania SELECT do wykonania widoku, zwrócimy nazwiska uczniów w kolumnie 'nazwisko' tabeli 'Student'.

>> WYBIERZ * Z std_view;

Przykład 3: Widok zmaterializowany przy użyciu klauzuli WHERE

Teraz utworzymy zmaterializowany widok za pomocą klauzuli WHERE. Rozważ poniższą tabelę „Student” z pewnymi zmianami jej wartości.

Następnie utworzymy zmaterializowany widok o nazwie „teststd” za pomocą zapytania „CREATE MATERIALIZED VIEW”. Za pomocą klauzuli WHERE wybierzemy rekordy tabeli „Student”, w których wartość kolumny „wiek” jest większa niż „25”. Zapytanie działa poprawnie, jak widać na zdjęciu.

>> CREATE MATERIALIZED VIEW teststd AS SELECT sid, sname, wiek FROM Student WHERE wiek > '25';

Na koniec wykonamy zmaterializowany widok, który właśnie stworzyliśmy za pomocą polecenia SELECT, jak poniżej. Zobaczysz, że zwróci wszystkie rekordy z tabeli „Student”, w której kolumna „wiek” ma wartość większą niż „25.'

>> WYBIERZ * Z testówstd;

Przykład 4: Odśwież widok zmaterializowany za pomocą klauzuli BEZ DANYCH

W tym przykładzie stworzymy widok zmaterializowany, w którym do odświeżenia widoku użyjemy klauzuli WITH NO DATA. Załóżmy, że poniższa tabela „Ucznia” z pewnymi zmianami w jej wartościach.

Utworzymy teraz zmaterializowany widok „teststd”. Ten widok wybierze rekordy z tabeli „student”, w której wiek uczniów jest mniejszy niż „40”.' Pobrane rekordy zostaną pogrupowane i posortowane w porządku rosnącym w kolumnie 'sid'. Na końcu zapytania użyjemy klauzuli WITH NO DATA, aby wskazać, że zapytanie nie zapisze żadnych informacji w widoku zmaterializowanym. Widok pokazany poniżej powinien z powodzeniem wykonać te czynności.

>> CREATE MATERIALIZED VIEW teststd AS SELECT sid, sname, age FROM Student WHERE wiek < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Po dodaniu klauzuli „BEZ DANYCH” do zmaterializowanego widoku tworzy się pusta. Ten zmaterializowany widok nie podlega zapytaniom. Jak widać na poniższym obrazku, nie pobiera rekordów w nowo utworzonym widoku.

Instrukcja REFRESH MATERIALIZED VIEW służy do importowania danych do zmaterializowanego widoku. Wypełnij widok zmaterializowany, uruchamiając w powłoce następujące zapytanie REFRESH MATERIALIZED VIEW. Jak widać, to zapytanie zadziałało skutecznie.

>> ODŚWIEŻ ZMATERIALIZOWANY WIDOK teststd;

Ponownie pobierz rekordy zmaterializowanego widoku „teststd” za pomocą instrukcji SELECT w powłoce. Tym razem zapytanie SELECT działa poprawnie, ponieważ instrukcja 'REFRESH' załadowała zawartość do widoku zmaterializowanego.

Przykład 5: Upuść zmaterializowany widok

Następujące polecenie usunie widok zmaterializowany.

>> UPUŚĆ ZMATERIALIZOWANY WIDOK std_view;

Wniosek

W tym artykule pokazano, jak używać widoków zmaterializowanych za pomocą klauzuli WHERE i zapytań REFRESH w powłoce wiersza poleceń.

Gry 5 najlepszych kart do przechwytywania gier
5 najlepszych kart do przechwytywania gier
Wszyscy widzieliśmy i uwielbialiśmy strumieniowe rozgrywki na YouTube on. PewDiePie, Jakesepticye i Markiplier to tylko niektórzy z najlepszych graczy...
Gry Jak stworzyć grę na Linuksie
Jak stworzyć grę na Linuksie
Dziesięć lat temu niewielu użytkowników Linuksa przewidywało, że ich ulubiony system operacyjny pewnego dnia stanie się popularną platformą do gier dl...
Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...