What is Index?索引是什么?

原创 2005年03月03日 00:15:00
  1. 数据库引入了索引
    用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。
  2. 有关“索引”的比喻
    从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。
  3. 数据库索引实际是什么?(两部分组成)
    索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
  4. 索引在表中的角色
    一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上,
  5. 索引高效原理
    通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针,再直接通过指针从数据页面中读取数据。
  6. 索引的分类
    在SQL Server 的数据库中按存储结构的不同将索引分为两类:簇索引(Clustered Index)和非簇索引(Nonclustered Index)。
    1. 簇索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即簇索引与数据是混为一体,的它的叶节点中存储的是实际的数据。由于簇索引对表中的数据一一进行了排序,因此用簇索引查找数据很快。但由于簇索引将表的所有数据完全重新排列了,它所需要的空间也就特别大,大概相当于表中数据所占空间的120% 。表的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个簇索引。
    2. 非簇索引具有与表的数据完全分离的结构,使用非簇索引不用将物理数据页中的数据按列排序。非簇索引的叶节点中存储了组成非簇索引的关键字的值行定位器。行定位器的结构和存储内容取决于数据的存储方式。如果数据是以簇索引方式存储的,则行定位器中存储的是簇索引的索引键;如果数据不是以簇索引方式存储的,这种方式又称为堆存储方式(Heap Structure),则行定位器存储的是指向数据行的指针。非簇索引将行定位器按关键字的值用一定的方式排序,这个顺序与表的行在数据页中的排序是不匹配的。由于非簇索引使用索引页存储因此它比簇索引需要更多的存储空间且检索效率较低但一个表只能建一个簇索引,当用户需要建立多个索引时就需要使用非簇索引了。

      小结:Clustered Index 是与物理数据混在一起并对物理数据进重排,就像使用拼音查字典;Unclustered Index 是与物理数据完全分离的,利用额外空间对关键字进行重排,就像使用部首查字典。

relative links:

http://www.chinaitlab.com/www/news/article_show.asp?id=7606
http://www.windowsitpro.com/SQLServer/Article/ArticleID/8410/8410.html
http://www.vckbase.com/document/viewdoc/?id=1307
http://www.20cn.net/ns/wz/soft/data/20040111171601.htm
http://www.ddvip.net/database/mssql/index/46.htm

版权声明:本文为博主原创文章,未经博主允许不得转载。

What is Index and how it works in SQL Server?

What is Index and how it works in SQL Server?

what is an elasticsearch index?

What exactly is an index in Elasticsearch? Despite being a very basic question, the answer is surpri...

What Is White Balance in a Camera?摄像头里的白平衡是什么意思

What Is White Balance in a Camera? Anyone with a digital camera has probably heard the term white ...
  • acs713
  • acs713
  • 2014年12月09日 22:51
  • 1916

NDK是什么?(What is the NDK?)

原文地址:http://developer.android.com/sdk/ndk/overview.html   【译文】   NDK:Native Development Kit   ...
  • mnorst
  • mnorst
  • 2011年11月30日 10:24
  • 6095

What is a Digital Signature? (数字签名是什么?)

2012-07-14 wcdj 文章对数字签名的概念介绍的比较通俗易懂,而且译版评论中对一些细节进行了详细讨论。 英文原版:http://www.youdzone.com/signature....

EXTjs作用域是什么(What is that Scope all about ) (转)

来源:http://hi.baidu.com/bluid/blog/item/0484d0f378f1605b342acc63.html EXTjs作用域是什么(What is that ...

像素是什么(What Is a Pixel)

像素是什么?也许大多数人并没有认真考虑过这个问题。很多人会说,像素?不就是个有颜色的小方块嘛。唔,其实它比你认为的要复杂一些。Blinn大神有一篇关于这个主题的非常好的文章,相信读完它你会对像素有个全...

空间索引网格大小无效的解决方法The spatial index grid size is invalid

空间索引网格大小无效的解决方法The spatial index grid size is invalid 原名引至:http://www.cnblogs.com/linhugh/archive...
  • hsg77
  • hsg77
  • 2012年10月22日 13:09
  • 4779

What’s The Deal With The Git Index?

源自:http://www.gitguys.com/topics/whats-the-deal-with-the-git-index/ What’s The Deal With The ...
  • Koupoo
  • Koupoo
  • 2012年05月11日 09:15
  • 387

_What is Cone-Beam CT

  • 2016年02月23日 21:12
  • 2.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:What is Index?索引是什么?
举报原因:
原因补充:

(最多只允许输入30个字)