是否可以仅在数据发生更改时更新 mysql 视图?
Posted
技术标签:
【中文标题】是否可以仅在数据发生更改时更新 mysql 视图?【英文标题】:Is it possible to only update mysql view when there is changes in data? 【发布时间】:2014-03-21 14:08:09 【问题描述】:我有一个非常慢的查询(大数字),运行需要 60 秒。
我认为将结果设为 VIEW 可以解决问题,但我现在看到视图会针对对视图的每个查询进行更新。
问题是这个视图的真实数据每月只更新一次,因此不需要在每次查询时更新。
这可能吗?仅在原始表发生更改时才更新视图?
【问题讨论】:
【参考方案1】:从 5.6 开始,不能使用 mysql 视图。最简单的方法是创建一个每月填充一次的报表,而不是动态视图。您可以创建一个时间触发事件来运行 SQL 来填充它:dev.mysql.com/doc/refman/5.5/en/create-event.html
【讨论】:
是的,这是一个解决方案。我只是在想,如果视图只能在数据更改时更新,那就更简单了。 @KristianRafteseth 这是一个尝试,但基本上就是我所描述的:***.com/questions/16687736/…【参考方案2】:也许您可以尝试编写一个包含插入/更新/删除功能的函数并更新视图。或者你可以使用 mysql 触发器并在表有修改时更新视图
【讨论】:
以上是关于是否可以仅在数据发生更改时更新 mysql 视图?的主要内容,如果未能解决你的问题,请参考以下文章