Оптимизация запросов в PostgreSQL
Amy McCarty
Instructor
SELECT *
FROM ...
| Описание | организованное хранилище |
| Содержит | данные |
| Загружается | процесс извлечения, преобразования и загрузки (ETL) |
| Источник | система управления персоналом, CRM, сбор опросов и т. д. |
| Описание | организованное хранилище (строки и столбцы) |
| Содержит | данные |
| Загружается | запросом (временно) |
| Источник | существующие базовые таблицы |
CREATE TEMP TABLE my_temptable AS
SELECT *
FROM survey_monkey_results
WHERE survey_date >= '2019-01-01';
SELECT * FROM my_temptable
| Описание | сохранённый запрос |
| Содержит | инструкции / определение представления |
| Загружается | никогда |
| Источник | существующие базовые таблицы |
Применение представлений
| Описание | сохранённый запрос | представление |
| Содержит | данные | таблица |
| Загружается | процесс обновления | таблица |
| Источник | существующие базовые таблицы | представление |
Применение материализованных представлений
| Что | Зачем |
|---|---|
| Таблица | базовое хранилище |
| Временная таблица | ускоряет запрос к большой таблице |
| Представление | сложная логика или вычисляемые поля |
| Материализованное представление | сложная логика, замедляющая производительность |
SELECT table_type
FROM information_schema.tables
WHERE table_catalog = 'orders_schema'
AND table_name = 'customer_table'
Оптимизация запросов в PostgreSQL