MySQL中索引和视图的区别是什么
索引和视图都用于优化目的,都是在表的列上实现的,所以任何一个都可以解释哪一个更快,它们之间的区别以及我们使用视图和索引的场景 查看MySQL中索引和视图的区别是什么,mysql,sql,database,view,indexing,Mysql,Sql,Database,View,Indexing,索引和视图都用于优化目的,都是在表的列上实现的,所以任何一个都可以解释哪一个更快,它们之间的区别以及我们使用视图和索引的场景 查看 视图是一个逻辑表。它是逻辑存储数据的物理对象。视图只引用存储在基表中的数据 视图是一个逻辑实体。它是存储在系统表空间数据库中的SQL语句。视图的数据构建在临时表空间中由数据库引擎创建的表中 索引 索引是映射到数据物理地址的指针。因此,通过使用索引,数据操作变得更快 索引是一种性能调整方法,允许更快地检索记录。索引为索引列中出现的每个值创建一个条目 类比: 假
- 视图是一个逻辑表。它是逻辑存储数据的物理对象。视图只引用存储在基表中的数据
- 视图是一个逻辑实体。它是存储在系统表空间数据库中的SQL语句。视图的数据构建在临时表空间中由数据库引擎创建的表中
- 索引是映射到数据物理地址的指针。因此,通过使用索引,数据操作变得更快
- 索引是一种性能调整方法,允许更快地检索记录。索引为索引列中出现的每个值创建一个条目
希望这个类比能解释什么时候必须使用视图,什么时候必须使用索引 从SQL的角度来看,两者都是不同的东西 视图 视图只不过是一个SQL语句,它以关联的名称存储在数据库中。视图实际上是预定义SQL查询形式的表的组合。 视图是一种虚拟表,允许用户执行以下操作:
- 视图可以包含表的所有行,也可以从表中选择行。可以从一个或多个表创建视图,这些表依赖于编写的SQL查询来创建视图
- 以用户或用户类别认为自然或直观的方式构造数据
- 限制对数据的访问,以便用户可以查看和(有时)修改他们所需的内容,而不再需要
- 汇总可用于生成报告的各种表中的数据
2) 这是一种基于一列或多列对表信息进行编目的方法。一个表可以包含一个或多个索引。索引类似于具有ROWID和索引列(有序)的二维结构。当基于此列(WHERE子句中使用的列)检索表数据时,此索引自动进入图片,其指针搜索所需的rowid。这些ROWID现在与实际表的ROWID匹配,并显示表中的记录。它们完全不同。视图只是简化子查询的一种方式。索引用于优化匹配列数据。