SQL中的索引是什么?

南笙酒味 提交于 2020-02-25 23:05:06

SQL中的索引是什么? 你能解释或参考清楚地理解吗?

我应该在哪里使用索引?


#1楼

聚集索引就像电话簿的内容。 你可以在'Hilditch,David'打开这本书,找到所有'Hilditch'彼此相邻的所有信息。 这里聚集索引的键是(lastname,firstname)。

这使得聚簇索引非常适合基于基于范围的查询检索大量数据,因为所有数据都位于彼此旁边。

由于聚簇索引实际上与数据的存储方式有关,因此每个表中只有一个可能存在(尽管您可以欺骗模拟多个聚簇索引)。

非聚集索引的不同之处在于您可以拥有许多索引,然后它们指向聚簇索引中的数据。 你可以在电话簿的背面有一个非聚集索引(城镇,地址)

想象一下,如果你必须通过电话簿搜索住在“伦敦”的所有人 - 只有聚集索引,你必须搜索电话簿中的每一个项目,因为聚簇索引上的键是打开的(姓氏,因此,居住在伦敦的人们在整个指数中随机分散。

如果(town)上有非聚集索引,则可以更快地执行这些查询。

希望有所帮助!


#2楼

索引都是关于快速查找数据的

数据库中的索引类似于您在书中找到的索引。 如果一本书有索引,并且我要求你在那本书中找到一章,你可以在索引的帮助下快速找到它。 另一方面,如果书中没有索引,则必须花费更多时间通过查看书籍从开头到结尾的每个页面来查找章节。

以类似的方式,数据库中的索引可以帮助查询快速查找数据。 如果您不熟悉索引,则以下视频非常有用。 事实上,我从中学到了很多东西。

索引基础
群集和非群集索引
独特和非唯一索引
索引的优缺点


#3楼

INDEXES - 轻松查找数据

UNIQUE INDEX - 不允许重复值

INDEX语法

CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);

UNIQUE INDEX语法

CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);

#4楼

INDEX是一种性能优化技术,可加速数据检索过程。 它是一个与表(或视图)关联的持久数据结构,以便在从该表(或视图)检索数据期间提高性能。

当您的查询包含WHERE过滤器时,更具体地应用基于索引的搜索。 否则,即没有WHERE过滤器的查询选择整个数据和过程。 在没有INDEX的情况下搜索整个表称为表扫描。

您将以清晰可靠的方式找到Sql-Indexes的确切信息:请点击以下链接:

  1. 对于cocnept-wise的理解: http ://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Overview-and-Optimizations.html
  2. 为了实现明智的理解: http//dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Creation-Deletetion-Optimizations.html

#5楼

一个非常好的比喻是将数据库索引视为书中的索引。 如果您有一本关于国家的书,并且您正在寻找印度,那么为什么要翻阅整本书 - 这相当于数据库术语中的全表扫描 - 当您可以转到后面的索引时本书,它将告诉您有关印度信息的确切页面。 同样,由于book索引包含页码,因此数据库索引包含指向包含要在SQL中搜索的值的行的指针。

更多信息

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!