Optymalizacja wydajności zapytań w PostgreSQL
Amy McCarty
Instructor
SELECT *
FROM ...
| Opisuje | zorganizowane przechowywanie danych |
| Zawiera | dane |
| Ładowane | proces ETL (ekstrakcja, transformacja, ładowanie) |
| Źródło | system HR, system CRM, narzędzie do ankiet itp. |
| Opisuje | zorganizowane (wiersze i kolumny) przechowywanie danych |
| Zawiera | dane |
| Ładowane | zapytanie (tymczasowo) |
| Źródło | istniejące tabele bazowe |
CREATE TEMP TABLE my_temptable AS
SELECT *
FROM survey_monkey_results
WHERE survey_date >= '2019-01-01';
SELECT * FROM my_temptable
| Opisuje | zapisane zapytanie |
| Zawiera | instrukcje / definicja widoku |
| Ładowane | nigdy |
| Źródło | istniejące tabele bazowe |
Zastosowanie widoku
| Opisuje | zapisane zapytanie | widok |
| Zawiera | dane | tabela |
| Ładowane | proces odświeżania | tabela |
| Źródło | istniejące tabele bazowe | widok |
Zastosowanie widoku zmaterializowanego
| Co | Dlaczego |
|---|---|
| Tabela | podstawowe przechowywanie danych |
| Tabela tymczasowa | przyspiesza zapytania na dużych tabelach |
| Widok | złożona logika lub pola obliczeniowe |
| Widok zmaterializowany | złożona logika spowalniająca wydajność |
SELECT table_type
FROM information_schema.tables
WHERE table_catalog = 'orders_schema'
AND table_name = 'customer_table'
Optymalizacja wydajności zapytań w PostgreSQL