实现和限制

在本教程中,您将了解MySQL视图,我们将解释并演示MySQL如何实现视图。

MySQL 5.x 版本之后支持数据库视图。 在MySQL中,视图的几乎特征符合SQL:2003标准。 MySQL以两种方式处理对视图的查询:

  • 第一种方式,MySQL会根据视图定义语句创建一个临时表,并在此临时表上执行传入查询。

  • 第二种方式,MySQL将传入查询与查询定义为一个查询并执行组合查询。

MySQL支持版本系统的视图。每次视图被更改或替换时,视图的副本将在驻留在特定数据库文件夹的arc(archive)文件夹中备份。备份文件的名称为view_name.frm-00001。如果再次更改视图,MySQL将创建一个名为view_name.frm-00002的新备份文件。

MySQL允许基于其他视图创建视图。在视图定义的SELECT语句中,可以引用另一个视图。

MySQL视图的限制

不能在视图上创建索引。当使用合并算法的视图查询数据时,MySQL会使用底层表的索引。对于使用诱惑算法的视图,当您针对视图查询数据时,不会使用索引。

MySQL 5.7.7之前版本,是不能在SELECT语句的FROM子句中使用子查询来定义视图的。

如果删除或重命名视图所基于的表,则MySQL不会发出任何错误。但是,MySQL会使视图无效。 可以使用CHECK TABLE语句来检查视图是否有效。

一个简单的视图可以更新表中数据。基于具有连接,子查询等的复杂SELECT语句创建的视图无法更新。

MySQL不像:OraclePostgreSQL等其他数据库系统那样支持物理视图,MySQL是不支持物理视图的。

Last updated