查询、表与视图

提升 PostgreSQL 查询性能

Amy McCarty

Instructor

查询

 

SELECT *
FROM ...
    • 基础表
    • 临时表
  • 视图
    • 视图
    • 物化视图
提升 PostgreSQL 查询性能

基础表

 

描述 有组织的存储
包含 数据
加载 抽取-转换-加载(ETL)流程
来源 人力资源系统、客户管理系统、问卷收集等
提升 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 子句引用总结

What Why
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 查询性能

¡Vamos a practicar!

提升 PostgreSQL 查询性能

Preparing Video For Download...