MySQL 入门教程:视图的实现和限制
在本教程中,您将了解 MySQL 视图,我们将解释和演示 MySQL 如何实现视图。
MySQL 5.x及更高版本支持数据库视图。在MySQL中,几乎所有视图函数都符合SQL:2003标准。 MySQL 通过两种方式处理对视图的查询:
- 第一种方式 MySQL 根据视图定义语句创建临时表,并在该临时表上执行传入的查询。
- 第二种方式:MySQL将传入查询和查询定义为一个查询,并执行组合查询。
MySQL支持版本系统视图。每次更改或替换视图时,都会将视图的副本备份到位于特定数据库文件夹中的 arc
(存档)文件夹。备份文件的名称为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 不支持像 Oracle、PostgreSQL 等数据库系统那样的物理视图。 MySQL 不支持物理视图。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。