Как использовать материализованное представление PostgreSQL

Как использовать материализованные представления База данных

Представления в PostgreSQL — это графические таблицы, в которых отображаются данные из соответствующих таблиц. Общие представления также могут быть изменены. PostgreSQL выводит концепцию представлений на следующий этап, позволяя представлениям хранить материальную информацию, называемую материализованными представлениями. Материализованное представление сохраняет выходные данные трудоемкого и сложного запроса, позволяя вам быстро запросить результаты в любое время. Материализованные точки зрения часто используются в хранилищах данных и приложениях бизнес-аналитики, поскольку они полезны в ситуациях, когда требуется быстрый доступ к данным.

Зачем использовать материализованные представления?

Если команда просмотра слишком медленная для вас, вы можете предпочесть материализованное представление. Материализованные представления обладают большой универсальностью, позволяя сохранять материальное представление в базе данных с более коротким временем доступа. Предположим, что вам необходимо создать запрос к базе данных для объединения нескольких таблиц, удаления строк из объединенной коллекции и сортировки таблиц различными способами. Это может быть сложный и трудоемкий запрос, и без материализованных представлений вы в конечном итоге будете использовать материализованное представление для решения этой дилеммы. В этой статье рассказывается, как использовать материализованные представления в PostgreSQL.

Синтаксис

>> CREATE MATERIALIZED VIEW view_name AS query WITH [NO] DATA;

Объяснение этого общего взгляда следующее:

  • View_name: заголовок представления, которое будет создано с помощью оператора CREATE MATERIALIZED VIEW.
  • Запрос: запрос, который получает данные из соответствующих таблиц.
  • WITH [NO] DATA: выберите вариант С ДАННЫМИ, чтобы включить информационные данные в материализованное представление во время разработки; в противном случае выберите БЕЗ ДАННЫХ. Представление помечается как непонятное, если вы используете опцию WITH [NO] DATA, что означает, что вы не сможете искать информацию в представлении, пока не загрузите в него данные.
Читайте также:  Внешний ключ Postgresql

Как использовать материализованные представления

Запустите оболочку командной строки PostgreSQL, чтобы начать работу с материализованными представлениями.

Укажите имя сервера, базу данных, с которой вы хотите работать, номер порта и имя пользователя, чтобы начать использовать командную оболочку. Оставьте эти поля пустыми, если вы хотите использовать систему по умолчанию.

Как использовать материализованные представления

Пример 1: простой вид

Чтобы понять материализованное представление, вам сначала нужно понять простые представления. Итак, создайте новую таблицу «Студент», используя команду CREATE TABLE, как добавлено.

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

После этого вставьте в него данные с помощью запроса INSERT.

После этого вставьте в него данные с помощью запроса INSERT

Получите записи таблицы «Студент» с помощью оператора SELECT для простого представления.

>> SELECT * FROM Student;

Получите записи таблицы «Студент»

Пример 2: Простое материализованное представление

Теперь пора охватить материализованное представление. Мы будем использовать таблицу «Студент» для создания материализованного представления. Мы создадим материализованное представление с именем ’std_view’ с помощью команды ’CREATE MATERIALIZED VIEW’. В этом представлении мы извлечем поле имени студента «sname» из таблицы «Student», сгруппируем и отсортируем его в возрастающем порядке в столбце «sname».

>> CREATE MATERIALIZED VIEW std_view AS SELECT sname FROM Student GROUP BY sname ORDER BY sname;

Теперь, используя запрос SELECT для выполнения представления, мы вернем имена студентов в столбце sname таблицы Student.

>> SELECT * FROM std_view;

Теперь, используя запрос SELECT для выполнения представления

Пример 3: Материализованное представление с использованием предложения WHERE

Теперь мы создадим материализованное представление, используя предложение WHERE. Рассмотрим следующую таблицу «Студент» с некоторыми изменениями ее значений.

Теперь мы создадим материализованное представление, используя предложение WHERE

Затем мы создадим материализованное представление с именем teststd, используя запрос CREATE MATERIALIZED VIEW. Мы выберем записи таблицы «Студент», где значение столбца «возраст» больше «25», используя предложение WHERE. Запрос работает правильно, как видно на картинке.

>> CREATE MATERIALIZED VIEW teststd AS SELECT sid, sname, age FROM Student WHERE age > ‘25;

Наконец, мы выполним только что созданное материализованное представление с помощью команды SELECT, как показано ниже. Вы увидите, что он вернет все записи из таблицы «Студент», в которой столбец «возраст» имеет значение больше «25».

>> SELECT * FROM teststd;

Наконец, мы выполним только что созданное материализованное представление с помощью команды SELECT

Пример 4: Обновить материализованное представление с помощью предложения WITH NO DATA

В этом примере мы создадим материализованное представление, в котором мы будем использовать предложение WITH NO DATA для обновления представления. Предположим, что следующая таблица «Студент» с некоторыми изменениями в ее значениях.

Предположим, что следующая таблица «Студент»

Теперь мы создадим материализованное представление teststd. Это представление выберет записи из таблицы «студент», в которой возраст учащихся меньше «40». Выбранные записи будут сгруппированы и отсортированы по возрастанию в столбце sid. В конце запроса мы будем использовать предложение WITH NO DATA, чтобы указать, что запрос не будет сохранять какую-либо информацию в материализованном представлении. Представление, показанное ниже, должно успешно выполнить эти действия.

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

Когда вы добавляете предложение «WITH NO DATA» к материализованному представлению, оно создает пустое представление. Это материализованное представление не запрашивается. Как вы можете видеть на следующем изображении, он не получает записи во вновь созданном представлении.

Как вы можете видеть на следующем изображении, он не получает записи во вновь созданном представлении

Оператор REFRESH MATERIALIZED VIEW используется для импорта данных в материализованное представление. Заполните материализованное представление, выполнив следующий запрос REFRESH MATERIALIZED VIEW в оболочке. Как видите, этот запрос сработал эффективно.

>> REFRESH MATERIALIZED VIEW teststd;

Опять же, выберите записи материализованного представления teststd с помощью оператора SELECT в оболочке. На этот раз запрос SELECT работает правильно, потому что оператор REFRESH загрузил содержимое в материализованное представление.

На этот раз запрос SELECT работает правильно, потому что оператор REFRESH

Пример 5: Отбросить материализованное представление

Следующая команда удалит материализованное представление.

>> DROP MATERIALIZED VIEW std_view;

Заключение

В этой статье показано, как использовать материализованные представления с помощью предложения WHERE и запросов REFRESH в оболочке командной строки. строки.

Оцените статью
bestprogrammer.ru
Добавить комментарий