MySQL中视图和普通表的区别

本文详细介绍了数据库中视图与表的概念及其主要区别与联系。包括视图的抽象特性、视图与表的数据存储方式、安全性及执行效率等方面。

1.视图是数据库数据的特定子集。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响。 
2.视图是抽象的,他在使用时,从表里提取出数据,形成虚的表。 不过对他的操作有很多的限制 。 
3. 而且视图是永远不会自己消失的除非你删除它。 
4.视图有时会对提高效率有帮助。临时表几乎是不会对性能有帮助,是资源消耗者。 
5.视图一般随该数据库存放在一起,临时表永远都是在tempdb里的。 
6.视图适合于多表连接浏览时使用!不适合增、删、改.,存储过程适合于使用较频繁的SQL语句,这样可以提高 执行效率!

 

视图和表的区别和联系

区别:1、视图是已经编译好的sql语句。而表不是 
2、视图没有实际的物理记录。而表有。 
3、表是内容,视图是窗口 
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改 
5、表是内模式,视图是外模式 
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 
8、视图的建立和删除只影响视图本身,不影响对应的基本表。

联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

转载于:https://www.cnblogs.com/liaojie970/p/8376260.html

### MySQL 视图的分类 在 MySQL 中,视图主要分为两种类型:普通视图物化视图(Materialized View)。尽管 MySQL 本身并不直接支持物化视图,但可以通过某些技巧或第三方工具实现类似的功能。 1. **普通视图** 普通视图是基于 SQL 查询逻辑定义的虚拟,它不存储实际的数据[^1]。每次查询视图时,MySQL 会根据视图定义的查询语句动态生成结果集。因此,普通视图具有以下特点: - 不占用物理存储空间。 - 查询视图时,底层实际上是执行了视图定义中的 SQL 查询。 - 视图的更新受到一定限制,例如不能包含聚合函数、`GROUP BY` 或 `DISTINCT` 等[^2]。 2. **物化视图(Materialized View)** 物化视图是一种将查询结果实际存储在磁盘上的视图类型。普通视图不同,物化视图会定期刷新以保持数据的一致性。虽然 MySQL 本身不原生支持物化视图,但可以通过以下方式实现类似功能: - 创建一个实际的来存储视图的结果。 - 使用触发器或定时任务定期更新该的数据。 - 示例代码如下: ```sql -- 创建物化视图的基础 CREATE TABLE materialized_view AS SELECT * FROM original_table WHERE condition; -- 定期刷新物化视图的数据 INSERT INTO materialized_view SELECT * FROM original_table WHERE condition ON DUPLICATE KEY UPDATE column1 = VALUES(column1), column2 = VALUES(column2); ``` 物化视图的优点包括: - 提高查询性能,因为数据已经预先计算并存储。 - 减少复杂查询对数据库的压力。 缺点是需要额外的存储空间,并且需要手动管理数据的刷新逻辑[^3]。 ### 总结 MySQL 中的视图主要分为普通视图通过技巧实现的物化视图普通视图是逻辑上的虚拟,而物化视图则存储实际数据以提高查询效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值