聚集索引与非聚集索引的总结.docx
《聚集索引与非聚集索引的总结.docx》由会员分享,可在线阅读,更多相关《聚集索引与非聚集索引的总结.docx(6页珍藏版)》请在第壹文秘上搜索。
1、聚集索引与非聚集索引的总结一,索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及HaSh结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQLServer以及MySQL的InnoDB和MyISAM两种SQL的索引。SQLSeVer索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。MySQL索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引。二.聚集索引聚集(ClUStered)索引,也叫聚簇索引。定义:数据行的物理挨次与列值(一般是主键的那一列)的规律挨次相同,一个表中只能拥有一个聚集索引。单单从定义来看
2、是不是显得有点抽象,打个比方,一个表就像是我们以前用的新华字典,聚集索引就像是拼音名目,而每个字存放的页码就是我们的数据物理地址,我们假如要查询一个“哇”字,我们只需要查询“哇”字对应在新华字典拼音名目对应的页码,就可以查询到对应的“哇”字所在的位置,而拼音名目对应的A-Z的字挨次,和新华字典实际存储的字的挨次A-Z也是一样的,假如我们中文新出了一个字,拼音开头第一个是B,那么他插入的时候也要依据拼音名目挨次插入到A字的后面,现在用一个简洁的示意图来也许说明一下在数据库中的样子:地址idusernameOxOl1小明0x022小红0x033小华Oxff256小英注:第一列的地址表示该行数据在磁
3、盘中的物理地址,后面三列才是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引。结合上面的表格就可以理解这句话了吧:数据行的物理挨次与列值的挨次相同,假如我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的挨次相同,所以也就只能建立一个聚集索引了。FindingRowsinaClusteredIndexsysindexesIidIindid.rootClusteredIndexJ,235625Page 140-RootAkhtarMartinSmithPageI45nioleseses GaHalJ0nJ0nJ0n3478343
4、43476802459267878347834Smith 1434Smith 5778Smith 7978White 2234White 1634Page 100Page 110Page 120Page 130聚集索引实际存放的示意图从上图可以看出聚集索引的好处了,索引的叶子节点就是对应的数据节点(MySQL的MyISAM除外,此存储引擎的聚集索引和非聚集索引只多了个唯一约束,其他没什么区分),可以直接猎取到对应的全部列的数据,而非聚集索引在索引没有掩盖到对应的列的时候需要进行二次查询,后面会具体讲。因此在查询方面,聚集索引的速度往往会更占优势。创建聚集索引假如不创建索引,系统会自动创建一个隐
5、含列作为表的聚集索引。1 .创建表的时候指定主键(留意:SQLSeVer默认主键为聚集索引,也可以指定为非聚集索引,而MySQL里主键就是聚集索引)createtabletl(idintprimarykey,namenvarchar(255)2 .创建表后添加聚集索引SQLServercreateclusteredindexClusteredJndexontable_name(colum_name)MySQLaltertabletable.nameaddprimarykey(colum,name)值得留意的是,最好还是在创建表的时候添加聚集索引,由于聚集索引的物理挨次上的特别性,因此假如再在上
6、面创建索引的时候会依据索引列的排序移动全部数据行上面的挨次,会特别地耗费时间以及性能。三.非聚集索引非聚集(unclustered)索弓I。定义:该索引中索引的规律挨次与磁盘上行的物理存储挨次不同,一个表中可以拥有多个非聚集索引。其实依据定义,除了聚集索引以外的索引都是非聚集索引,只是人们想细分一下非聚集索引,分成一般索引,唯一索引,全文索引。假如非要把非聚集索引类比成现实生活中的东西,那么非聚集索引就像新华字典的偏旁字典,他结构挨次与实际存放挨次不肯定全都。FindingRowsinaHeapwithaNonclusteredIndexsysindexesid I indid = 2 roo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 聚集 索引 总结