视图、存储过程与触发器
视图(View)
由查询定义的 虚拟表,不重复存储数据(除非物化场景另行设计)。
sql
CREATE VIEW v_order_summary AS
SELECT o.id, u.email, o.total_amount
FROM orders o
JOIN users u ON u.id = o.user_id;
SELECT * FROM v_order_summary LIMIT 10;用途:封装复杂关联、权限粒度控制(只授权视图)、兼容旧接口。
注意:基层表结构变更需同步维护视图定义。
存储过程(Stored Procedure)
将一组 SQL 封装在服务端执行,减少往返;适合 批量维护任务、固定报表逻辑。
- 优点:减少网络交互、可精细授权执行主体。
- 缺点:版本管理、调试与迁移不如应用代码直观;团队需约定规范。
触发器(Trigger)
在 INSERT / UPDATE / DELETE 前后自动执行,用于审计、同步冗余字段等。
风险:隐藏副作用、链式触发难排查;线上慎用 复杂触发器,优先考虑应用层或可靠消息。
小结
视图优先用于 查询封装;过程与触发器 克制使用,必须有文档与变更流程。
