首页/数据/SQL 速查/CREATE VIEW 基础与物化视图
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条
变更与事务52 条
性能与执行计划72 条

CREATE VIEW 基础与物化视图

把常用查询固化为视图:简化访问与权限控制;注意普通视图不存数据,PG 需要物化视图才可落盘加速。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
CREATE OR REPLACE VIEW v_paid_orders AS
SELECT id, user_id, total, created_at
FROM orders
WHERE status = 'paid';

SELECT * FROM v_paid_orders WHERE user_id = 100;

PostgreSQL

PostgreSQL
CREATE OR REPLACE VIEW v_paid_orders AS
SELECT id, user_id, total, created_at
FROM orders
WHERE status = 'paid';

-- 物化视图:结果落盘,需要手动刷新
CREATE MATERIALIZED VIEW mv_daily_sales AS
SELECT date_trunc('day', created_at) AS d, SUM(total) AS amount
FROM orders GROUP BY 1;
REFRESH MATERIALIZED VIEW mv_daily_sales;
普通视图只保存查询定义,每次访问都执行底层语句
物化视图PG 支持:结果落盘 + REFRESH;MySQL 无原生物化视图
权限可只授权视图而不暴露基表,收敛访问范围

易错点

  • 指望视图天然加速:普通视图不存数据,性能仍取决于底层查询与索引
  • 物化视图忘记刷新:数据停留在上次 REFRESH 时刻,需要调度配合

数据来源与参考

  • MySQL 8.0 Reference Manual · CREATE VIEW Statement
  • PostgreSQL Documentation · CREATE MATERIALIZED VIEW
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌