Запросы, таблицы и представления

Оптимизация запросов в PostgreSQL

Amy McCarty

Instructor

Запрос

 

SELECT *
FROM ...
  • Таблица
    • Базовая таблица
    • Временная таблица
  • Представление
    • Представление
    • Материализованное представление
Оптимизация запросов в PostgreSQL

Базовая таблица

 

Описание организованное хранилище
Содержит данные
Загружается процесс извлечения, преобразования и загрузки (ETL)
Источник система управления персоналом, CRM, сбор опросов и т. д.
Оптимизация запросов в PostgreSQL

Временная таблица

 

Описание организованное хранилище (строки и столбцы)
Содержит данные
Загружается запросом (временно)
Источник существующие базовые таблицы

 

CREATE TEMP TABLE my_temptable AS 
SELECT * 
FROM survey_monkey_results
WHERE survey_date >= '2019-01-01';

SELECT * FROM my_temptable
Оптимизация запросов в PostgreSQL

Стандартное представление

 

Описание сохранённый запрос
Содержит инструкции / определение представления
Загружается никогда
Источник существующие базовые таблицы

 

Применение представлений

  • Объединение часто используемых таблиц
  • Вычисляемые столбцы
    • Сводные метрики
  • Отображение части данных таблицы
    • Показывать сотрудников, скрывая зарплаты
Оптимизация запросов в PostgreSQL

Материализованное представление

 

Описание сохранённый запрос представление
Содержит данные таблица
Загружается процесс обновления таблица
Источник существующие базовые таблицы представление

Применение материализованных представлений

  • То же, что и у представлений
    • Быстрее
Оптимизация запросов в PostgreSQL

Обзор объектов в предложении FROM

Что Зачем
Таблица базовое хранилище
Временная таблица ускоряет запрос к большой таблице
Представление сложная логика или вычисляемые поля
Материализованное представление сложная логика, замедляющая производительность
Оптимизация запросов в PostgreSQL

Информационная схема

  • Содержит метаданные о базе данных
  • Доступна во многих СУБД
    • PostgreSQL, SQL Server, MySQL

 

SELECT table_type 
FROM information_schema.tables 
WHERE table_catalog = 'orders_schema' 
AND table_name = 'customer_table'

 

 

 

  • BASE TABLE : базовая таблица
  • LOCAL TEMPORARY : временная таблица
  • VIEW : представление или материализованное представление
Оптимизация запросов в PostgreSQL

Давайте потренируемся!

Оптимизация запросов в PostgreSQL

Preparing Video For Download...