【发布时间】:2011-03-26 02:19:34
【问题描述】:
在工作中,我经常被告知,当对 MySQL 数据库进行更改时,需要“刷新”视图。接受的手动解决方案似乎进入 Workbench,右键单击并点击“全部刷新”
这只是为了清除缓存吗?还是从头开始重建视图,或者这完全是假的?他们似乎能够分辨出视图何时没有被“刷新”,我不确定他们是否理解这一点,“因为当它们发生变化时需要刷新。”
如果只是清除缓存,'FLUSH TABLES WITH READ LOCK'就够了吗?
【问题讨论】:
在工作中,我经常被告知,当对 MySQL 数据库进行更改时,需要“刷新”视图。接受的手动解决方案似乎进入 Workbench,右键单击并点击“全部刷新”
这只是为了清除缓存吗?还是从头开始重建视图,或者这完全是假的?他们似乎能够分辨出视图何时没有被“刷新”,我不确定他们是否理解这一点,“因为当它们发生变化时需要刷新。”
如果只是清除缓存,'FLUSH TABLES WITH READ LOCK'就够了吗?
【问题讨论】:
我正在处理一个项目,但我的 视图 没有显示新数据,因为我试图在 NULL 上进行 join字段到另一个表。因此,我刚刚使用该字段的正确值更新了新数据,并且它起作用了。
【讨论】:
视图在数据改变时不需要刷新。当您查询它们时,它们会获取最新数据。
如果您的表结构发生变化,它们可能需要重新创建:
视图定义在创建时被“冻结”,因此之后对基础表的更改不会影响视图定义。例如,如果视图在表上定义为 SELECT *,则稍后添加到表中的新列不会成为视图的一部分。
【讨论】: