SQL中的索引是什么? 你能解释或参考清楚地理解吗? php
我应该在哪里使用索引? html
汇集索引就像电话簿的内容。 你能够在'Hilditch,David'打开这本书,找到全部'Hilditch'彼此相邻的全部信息。 这里汇集索引的键是(lastname,firstname)。 sql
这使得聚簇索引很是适合基于基于范围的查询检索大量数据,由于全部数据都位于彼此旁边。 数据库
因为聚簇索引实际上与数据的存储方式有关,所以每一个表中只有一个可能存在(尽管您能够欺骗模拟多个聚簇索引)。 性能优化
非汇集索引的不一样之处在于您能够拥有许多索引,而后它们指向聚簇索引中的数据。 你能够在电话簿的背面有一个非汇集索引(城镇,地址) 数据结构
想象一下,若是你必须经过电话簿搜索住在“伦敦”的全部人 - 只有汇集索引,你必须搜索电话簿中的每个项目,由于聚簇索引上的键是打开的(姓氏,所以,居住在伦敦的人们在整个指数中随机分散。 ide
若是(town)上有非汇集索引,则能够更快地执行这些查询。 性能
但愿有所帮助! 优化
索引都是关于快速查找数据的 。 spa
数据库中的索引相似于您在书中找到的索引。 若是一本书有索引,而且我要求你在那本书中找到一章,你能够在索引的帮助下快速找到它。 另外一方面,若是书中没有索引,则必须花费更多时间经过查看书籍从开头到结尾的每一个页面来查找章节。
以相似的方式,数据库中的索引能够帮助查询快速查找数据。 若是您不熟悉索引,则如下视频很是有用。 事实上,我从中学到了不少东西。
INDEXES
- 轻松查找数据
UNIQUE INDEX
- 不容许重复值
INDEX
语法
CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);
UNIQUE INDEX
语法
CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);
INDEX是一种性能优化技术,可加速数据检索过程。 它是一个与表(或视图)关联的持久数据结构,以便在从该表(或视图)检索数据期间提升性能。
当您的查询包含WHERE过滤器时,更具体地应用基于索引的搜索。 不然,即没有WHERE过滤器的查询选择整个数据和过程。 在没有INDEX的状况下搜索整个表称为表扫描。
您将以清晰可靠的方式找到Sql-Indexes的确切信息:请点击如下连接:
一个很是好的比喻是将数据库索引视为书中的索引。 若是您有一本关于国家的书,而且您正在寻找印度,那么为何要翻阅整本书 - 这至关于数据库术语中的全表扫描 - 当您能够转到后面的索引时本书,它将告诉您有关印度信息的确切页面。 一样,因为book索引包含页码,所以数据库索引包含指向包含要在SQL中搜索的值的行的指针。