首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在MySQL中不存在物化视图,为什么在MySQL解释语句中列出了一些视图是物化的?

如果在MySQL中不存在物化视图,为什么在MySQL解释语句中列出了一些视图是物化的?
EN

Database Administration用户
提问于 2019-01-09 15:01:38
回答 2查看 3.7K关注 0票数 3

希望这个问题是不言自明的。我读过MySQL中不存在物化视图,但有时我在EXPLAIN中看到类似的情况

有人能帮我澄清这件事吗?如果在MySQL中物化视图不是一件事,那么“(物化)”意味着什么?使用MySQL Server 5.6,Workbench 6.3。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2019-01-09 16:35:43

对于外部世界(如果我没有弄错的话),“物化视图”是一个永久的表,它根据其他表中的数据自动插入/更新。

在MySQL中,它的意义相当有限。它指的是某些“派生”表(例如,FROM ( SELECT ... ))。优化器有多种处理此类结构的方法。

  • 在5.6之前,对于单个这样的构造,优化器只需使用它作为第一个“表”,而不必“物化”任何东西。
  • 在5.6之前,对于多个派生表(对于FROM (SELECT...) JOIN (SELECT...)),优化器将不得不重复地重新执行除第一个派生表之外的所有派生表。
  • 5.6引入了为其中一个派生表创建临时表的自动功能。此外,优化器变得足够聪明,能够发现这个临时表的最优索引并创建它。(附带说明:对整个查询进行适当的重写通常会更好。)

从本质上说,程序员根本无法控制这个版本的“物化视图”。(嗯,重写以避免这种需要。)

5.7和8.0甚至有更多的性能改进。但仍然没有外部世界所知道的“物化的观点”。

票数 6
EN

Database Administration用户

发布于 2019-01-09 16:01:31

扩展解释输出格式

  • (查询片段)

使用子查询物化。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/226699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档