在MySQL中创建实例化视图的最佳方法


Answers:


11

实例化视图在MySQL中不存在。

之前在DBA StackExchange中建议使用 Flexviews

既然您已经拥有它,那么可能需要对它进行一些尽职调查和肘部润滑脂才能继续使用它(如果您尚未这样做)

替代方案#1

您可能会考虑设置汇总表。在构建汇总表之前,您将需要索引基表以支持聚合。

替代方案#2

这是来自http://www.materialized.info/的旧文章,该文章具有更实用的策略,看起来很有趣。它涉及使用触发器。看起来可能很有趣...

替代方案3

如果您的基表不是那么大,并且您可以每周查询一次整个表,请尝试在CREATE VIEW上User CommentsMySQL文档部分中获取想法。materialized在该页面上搜索单词。


在MySQL的最新版本,您可以创建materliazed表dba.stackexchange.com/a/226707/50702
Revious

1

我发现了两种在MySQL中实现物化视图的可能解决方案:

  1. 创建具有所有必需数据的聚合表,然后在数据来自的表上创建触发器。

  2. 创建一个计划程序,该计划程序定期将数据聚合到表中

在这里查看我的博客文章中有关如何实现这两个选项的更多详细信息: 实例化视图MySQL


0

如果您的基础数据大部分都是稳定的,或者您可以容忍视图和数据之间的差异,那么请考虑使用我为解决这种用例而编写的简单工具。这些使您可以在单独的文件中编写生成表的复杂SQL查询。查询之间的关系是自动派生的,并且查询可以通过Unix make工具以适当的顺序执行。要刷新生成的表,您需要运行make clean all。该工具对于增量构建复杂的查询非常有用,这些查询根据输入的预先计算的结果有效执行。


您可能应该使披露(您是工具作者)更加突出。
mustaccio

好点子!我编辑了答案以澄清这一点。
Diomidis Spinellis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.