查詢、資料表與檢視,傻傻分不清?

改進 PostgreSQL 的查詢效能

Amy McCarty

Instructor

查詢

 

SELECT *
FROM ...
  • Table
    • 基礎資料表
    • 暫存資料表
  • View
    • 檢視
    • 具現化檢視
改進 PostgreSQL 的查詢效能

基礎資料表

 

Describe 組織化儲存
Contains 資料
Loaded extract, transform, load (ETL) 流程
Source 人資系統、客戶管理系統、問卷蒐集等
改進 PostgreSQL 的查詢效能

暫存資料表

 

Describe 組織化(列、欄)儲存
Contains 資料
Loaded 查詢(暫時)
Source 既有基礎資料表

 

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

SELECT * FROM my_temptable
改進 PostgreSQL 的查詢效能

一般檢視

 

Describe 已儲存的查詢
Contains 指令/檢視定義
Loaded 不會
Source 既有基礎資料表

 

檢視的用途

  • 將常一起聯結的資料表合併
  • 計算欄位
    • 摘要指標
  • 僅顯示資料表的一部分
    • 顯示員工但隱藏薪資
改進 PostgreSQL 的查詢效能

具現化檢視

 

Describe 已儲存的查詢 view
Contains 資料 table
Loaded 重新整理程序 table
Source 既有基礎資料表 view

具現化檢視的用途

  • 與檢視相同
    • 更快
改進 PostgreSQL 的查詢效能

FROM 子句參照總結

物件 原因
Table 基礎儲存
Temp table 加速大型資料表的查詢
View 複雜邏輯或計算欄位
Materialized view 複雜邏輯導致效能變慢時
改進 PostgreSQL 的查詢效能

Information schema

  • 提供資料庫的中繼資料
  • 多數資料庫皆有
    • 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...