PostgreSQL

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

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

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

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

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

Синтаксис

>> СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД имя_представления КАК запрос С [НЕТ] ДАННЫХ;

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

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

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

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

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

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

>> СОЗДАТЬ ТАБЛИЦУ Student (sid serial PRIMARY KEY, sname VARCHAR (100) NOT NULL, age VARCHAR (100) NOT NULL);

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

Получите записи из таблицы "Студент", используя оператор SELECT для простого представления.

>> ВЫБРАТЬ * ОТ студента;

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

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

>> СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД std_view КАК ВЫБРАТЬ sname ИЗ ГРУППЫ студентов ПО sname ORDER BY sname;

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

>> ВЫБРАТЬ * ИЗ std_view;

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

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

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

>> СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ПРОСМОТР teststd КАК ВЫБРАТЬ sid, sname, age FROM Student WHERE age> '25';

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

>> ВЫБРАТЬ * ИЗ teststd;

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

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

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

>> СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ПРОСМОТР teststd КАК ВЫБРАТЬ sid, sname, age FROM Student WHERE age < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Когда вы добавляете предложение "БЕЗ ДАННЫХ" в материализованное представление, создается пустое представление. Это материализованное представление не запрашивается. Как вы можете видеть на следующем изображении, он не получает записи во вновь созданном представлении.

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

>> ОБНОВИТЬ МАТЕРИАЛИЗОВАННЫЙ ПРОСМОТР teststd;

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

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

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

>> УДАЛИТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД std_view;

Заключение

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

Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...