【发布时间】:2014-03-21 14:08:09
【问题描述】:
我有一个非常慢的查询(大数字),运行需要 60 秒。
我认为将结果设为 VIEW 可以解决问题,但我现在看到视图会针对对视图的每个查询进行更新。
问题是这个视图的真实数据每月只更新一次,因此不需要在每次查询时更新。
这可能吗?仅在原始表发生更改时才更新视图?
【问题讨论】:
我有一个非常慢的查询(大数字),运行需要 60 秒。
我认为将结果设为 VIEW 可以解决问题,但我现在看到视图会针对对视图的每个查询进行更新。
问题是这个视图的真实数据每月只更新一次,因此不需要在每次查询时更新。
这可能吗?仅在原始表发生更改时才更新视图?
【问题讨论】:
从 5.6 开始,不能使用 mysql 视图。最简单的方法是创建一个每月填充一次的报表,而不是动态视图。您可以创建一个时间触发事件来运行 SQL 来填充它:dev.mysql.com/doc/refman/5.5/en/create-event.html
【讨论】:
也许您可以尝试编写一个包含插入/更新/删除功能的函数并更新视图。或者你可以使用 mysql 触发器并在表有修改时更新视图
【讨论】: