【发布时间】:2011-11-19 00:30:21
【问题描述】:
假设我在 MySQL 中有一个视图:
CREATE VIEW blah AS
SELECT columnA FROM tableA
此视图多久从基础表 tableA 更新一次?
【问题讨论】:
假设我在 MySQL 中有一个视图:
CREATE VIEW blah AS
SELECT columnA FROM tableA
此视图多久从基础表 tableA 更新一次?
【问题讨论】:
立即。视图实际上并不作为数据的单独副本存在,而是作为重写查询的指令存在。
也就是说,当您 select columnA from blah 时,MySQL 会在内部将其重写为 select columnA from tableA。
在支持物化视图的系统中,数据库负责使它们保持最新。
(请注意,当查询足够复杂时,MySQL 将在内部实现一个视图,仅在查询期间。这是一个实现细节,最好认为是 MySQL 查询优化器中的一个缺陷。EXPLAIN 可用于看看这是什么时候发生的——但你很可能会从糟糕的表现中注意到。)
【讨论】: