索引和视图哪个更快,索引和视图都用于优化目的,都在表的列上实现,所以任何人都解释一下哪个更快,两者之间有什么区别,以及我们使用视图和索引的场景。
查看
索引
类比:
假设在一家商店,假设您有多个货架。根据保存的物品对每个货架进行分类就像创建索引一样。因此,您会知道到底要在哪里寻找特定项目。这是索引。
在同一家商店中,您想了解多个数据,例如产品、库存、销售数据等作为综合报告,然后可以将其与视图进行比较。
希望这个类比能够解释何时必须使用视图以及何时必须使用索引!
从 SQL 的角度来看,两者是不同的东西。
观点
视图只不过是存储在数据库中并具有关联名称的 SQL 语句。视图实际上是预定义 SQL 查询形式的表的组合。 视图是一种虚拟表,允许用户执行以下操作:
索引
索引是特殊的查找表,数据库搜索引擎可以使用它来加速数据检索。简单地说,索引是指向表中数据的指针。数据库中的索引与书本后面的索引非常相似。
例如,如果您想引用一本书中讨论某个主题的所有页面,您首先要引用索引,该索引按字母顺序列出所有主题,然后引用一个或多个特定页码。
索引有助于加快 SELECT 查询和 WHERE 子句的速度,但会减慢 UPDATE 和 INSERT 语句的数据输入速度。可以创建或删除索引,而不影响数据。
查看:
1)视图也是数据库对象之一。 视图包含基表的逻辑数据。其中基表具有实际数据(物理数据)。换句话说,我们可以说视图就像一个窗口,通过它可以查看或更改表中的数据。
2) 它只是一个带有对象名称的存储 SQL 语句。它可以在任何 SELECT 语句中使用,例如表。
索引:
1)将在列上创建索引。通过使用索引,可以快速完成行的获取。
2)这是一种基于一列或多列对表信息进行编目的方法。一张表可以包含一个/多个索引。索引就像一个具有 ROWID 和索引列(有序)的二维结构。当基于该列(WHERE 子句中使用的列)检索表数据时,该索引会自动进入图片,并通过指针搜索所需的 ROWID。这些 ROWID 现在与实际表的 ROWID 匹配,并显示表中的记录。
**
** 由查询创建的虚拟表。 不存储数据;相反,它会在每次访问时从现有表中提取数据。 用于简化复杂查询、增强安全性并提供特定的数据视角。 可以像常规表一样查询,但不能总是更新。
**
** 提高数据检索速度的数据结构。 存储指向表中数据的指针,有助于加快涉及搜索或排序的查询。 用于提高性能,但会减慢写入操作(如 INSERT、UPDATE)。