快速理解聚集索引和非聚集索引


       数据库的索引,听起来挺神秘的,仔细想想。这些索引,其实就是平时咱们查东西时候常用的两种手段。无非就是为了提高我们找东西的效率而已。那么我们平时又是怎么查东西呢?

聚集索引:


       聚集索引,来源于生活尝试。这中索引可以说是按照数据的物理存储进行划分的。对于一堆记录来说,使用聚集索引就是对这堆记录 进行 堆划分。即主要描述的是物理上的存储。

举个例子:


       比如图书馆新进了一批书。那么这些书需要放到图书馆内。书如何放呢?一般都有一个规则,杂志类的放到101房间,文学类的放到102房间,理工类的放到103房间等等。这些存储的规则决定了每本书应该放到哪里。而这个例子中聚集索引为书的类别。
       正式因为这种存储规则,才导致 聚集索引的唯一性。

误区:


       有的人认为,聚集索引的字段是唯一的。这是因为sql server 中添加主键的时候,自动给主键所在的字段生成一个聚集索引。所以人们会认为聚集索引所加的字段是唯一的。
       思考一下上面这个问题。杂志类的书放到101房间。那么如果杂志类的书太多,一个101房间存放不下。那么可能101,201两个房间来存放杂志类的书籍。如果这样分析的话,那么一个杂志类对应多个房间。放到表存储的话,那么这个类别字段 就不是唯一的了。

非聚集索引:


       非聚集索引,也可以从生活中找到映射。非聚集索引强调的是逻辑分类。可以说是定义了一套存储规则,而需要有一块控件来维护这个规则,这个被称之为索引表。

继续使用上述提到的例子:


       同学如果想去图书馆找一本书,而不知道这本书在哪里?那么这个同学首先应该找的就是 检索室吧。对于要查找一本书来说,在检索室查是一个非常快捷的的途径了吧。但是,在检索室中你查到了该书在XX室XX书架的信息。你的查询结束了吗?没有吧。你仅仅找到了目的书的位置信息,你还要去该位置去取书。


对于这种方式来说,你需要两个步骤:
       1、查询该记录所在的位置。
       2、通过该位置去取要找的记录。

区别:


       聚集索引:可以帮助把很大的范围,迅速减小范围。但是查找该记录,就要从这个小范围中Scan了。
       非聚集索引:把一个很大的范围,转换成一个小的地图。你需要在这个小地图中找你要寻找的信息的位置。然后通过这个位置,再去找你所需要的记录。

索引与主键的区别


       主键:主键是唯一的,用于快速定位一条记录。
       聚集索引:聚集索引也是唯一的。(因为聚集索引的划分依据是物理存储)。而聚集索引的主要是为了快速的缩小查找范围,即记录数目未定。
       主键和索引没有关系。他们的用途相近。如果聚集索引加上唯一性约束之后,他们的作用就一样了。

使用场景


基于上述的两种规则,那么在什么时候适合聚集索引,什么时候适合非聚集索引?
试用场景


       如果你理解了数据库是如何使用索引的,那么你在看上一篇文章《高并发下update产生的死锁》就很容易明白了。

  • 44
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
SQL Server是一种关系型数据库管理系统(RDBMS),用于存储和管理大量数据。从入门到精通SQL Server,以下是一些步骤和概念: 1. 安装和配置:首先,你需要下载和安装SQL Server软件。安装过程中,你可以选择要安装的组件和配置选项。确保按照安装向导的指示进行操作。 2. 数据库基础知识:学习SQL语言和数据库基础知识是理解SQL Server的关键。了解表、列、行、主键、外键等概念。 3. 创建数据库:使用SQL Server Management Studio (SSMS)或Transact-SQL (T-SQL)语句,你可以创建一个新的数据库。在创建数据库时,考虑命名、文件组、文件位置和初始大小等因素。 4. 表设计和数据类型:学习如何设计表结构,并选择合适的数据类型来存储不同类型的数据。了解常用的数据类型,如整数、字符、日期等。 5. 数据插入和查询:使用INSERT语句将数据插入表中,使用SELECT语句查询数据。了解如何使用WHERE子句进行过滤、使用ORDER BY排序结果。 6. 更新和删除数据:学习使用UPDATE语句更新表中的数据,使用DELETE语句删除数据。注意备份数据以防止意外删除。 7. 索引和性能优化:了解索引的作用和类型,如聚集索引非聚集索引。学习如何创建和管理索引,以提高查询性能。 8. 视图和存储过程:学习创建和使用视图来简化复杂的查询,以及创建和执行存储过程来实现可重用的代码逻辑。 9. 安全性和权限管理:学习如何设置用户和角色,并为数据库对象分配适当的权限。确保只有授权用户能够访问和修改数据。 10. 故障恢复和备份:了解如何进行数据库备份和还原操作,以及应对故障和数据丢失的方法。 以上是SQL Server从入门到精通的一些关键步骤和概念。不断实践和深入学习,你将逐渐掌握SQL Server的高级技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值