MySQL中的INDEX和VIEW有什么区别

时间:2014-06-13 04:42:51

标签: mysql sql database view indexing

哪一个很快,Index或View都用于优化目的,两者都在表的列上实现,因此任何一个都解释哪一个更快,两者之间有什么区别以及我们使用视图和索引的场景。

4 个答案:

答案 0 :(得分:7)

查看

  • View是一个逻辑表。它是一个逻辑上存储数据的物理对象。 View仅引用基表中的数据。
  • 视图是一个逻辑实体。它是存储在系统表空间的数据库中的SQL语句。视图的数据构建在TEMP表空间中的数据库引擎创建的表中。

<强> INDEX

  • 索引是映射到数据物理地址的pointres。因此,通过使用索引,数据操作变得更快。
  • 索引是一种允许更快地检索记录的性能调整方法。索引为索引列中显示的每个值创建一个条目。

<强>类比

假设在商店里,假设你有多个货架。根据保存的项目对每个机架进行分类就像创建索引一样。因此,您可以知道找到特定项目的确切位置。这是索引。

在同一家商店中,您想要了解多个数据,例如产品,库存,销售数据和内容作为合并报告,然后可以将其与视图进行比较。

希望这个类比能够解释何时必须使用视图以及何时必须使用索引!

答案 1 :(得分:1)

从SQL的角度来看,两者都是不同的东西。

<强>视图

视图只不过是存储在具有关联名称的数据库中的SQL语句。视图实际上是预定义SQL查询形式的表的组合。 视图是一种虚拟表,允许用户执行以下操作:

  • 视图可以包含表的所有行或从表中选择行。可以从一个或多个表创建视图,这取决于编写的SQL查询以创建视图。
  • 以用户或用户类别自然或直观的方式构建数据。
  • 限制对数据的访问,以便用户可以看到并且(有时)完全修改他们需要的内容而不再修改。
  • 汇总各种表格中可用于生成报告的数据。

<强>指标

索引是特殊的查找表,数据库搜索引擎可以使用它来加速数据检索。简单地说,索引是指向表中数据的指针。数据库中的索引与书后面的索引非常相似。

例如,如果要引用书中讨论某个主题的所有页面,首先要引用索引,该索引按字母顺序列出所有主题,然后引用一个或多个特定页码。

索引有助于加快SELECT查询和WHERE子句,但它会减慢数据输入,使用UPDATE和INSERT语句。可以创建或删除索引,而不会影响数据。

答案 2 :(得分:0)

查看:

1)视图也是数据库对象之一。 view包含基表的逻辑数据。其中基表有实际数据(物理数据)。另一种方法我们可以说view就像一个窗口,通过它可以查看或更改表中的数据。

2)它只是一个带有对象名称的存储SQL语句。它可以在任何SELECT语句中使用,如表。

<强>指数:

1)索引将在columns.by上使用索引创建,行的提取将很快完成。

2)这是一种基于1列或更多列对表信息进行编目的方法。一个表可能包含一个/多个索引。索引就像一个具有ROWID&amp;的二维结构。 indexed-column(ordered)。当基于该列(在WHERE子句中使用的col。)检索表数据时,该索引自动进入图片并且它的指针搜索所需的ROWID。这些ROWID现在与实际表的ROWID匹配,并显示表中的记录。

答案 3 :(得分:0)

查看-------

1.View是一个逻辑表。它是一个逻辑上存储数据的物理对象。视图只是指存储在基表中的数据。

2.view包含基表的逻辑数据。基表具有实际数据(物理数据)。我们可以说视图就像是一个窗口,通过该窗口可以查看或更改表中的数据。

3。视图是逻辑实体。它是存储在系统表空间中数据库中的一条SQL语句。视图的数据内置在数据库引擎在TEMP表空间中创建的表中。

4。视图作为选择语句存储在数据库中。它提供了数据和表的安全性。这意味着,如果我们删除视图,则不会损坏表。由于流量大,可以控制n / w流量占用更多内存的查询存储为视图。

5.view也是数据库对象之一。

索引----

1。将在列上创建索引。通过使用索引,可以快速完成行的获取。

2。索引是一种性能调整方法,可以更快地检索记录。索引为出现在索引列中的每个值创建一个条目。

3。使用索引使搜索变得容易。

4。索引有助于加快SELECT查询和WHERE子句的速度,但使用UPDATE和INSERT语句会减慢数据输入的速度。索引可以创建或删除,而对数据没有影响。

5。索引也可以是唯一的,就像UNIQUE约束一样,因为索引可以防止存在索引的列或列组合中的重复条目。