数据库索引

讲数据库的索引,是因为面试的时候这是道面试题。索引可以理解成为一种特殊的目录。sqlserver数据库提供了两种索引:聚集索引(也叫聚类索引、聚簇索引等)和非聚集索引首先,聚集索引是唯一的。一张表里,只能有一个聚集索引因为聚集索引中键值的逻辑顺序就是表中对应行的物理顺序比如数据表中存的是一个电话本,在姓氏上建立聚集索引,这一列就按abcdefg这种字母顺序裴谞

排序

对应到物理存储上,也是按这个顺序的一个聚集索引可以包括多个列,比如我们按照姓氏和名字进行排序,由于聚集索引的逻辑顺序规定了数据的物理存储顺序,所以他必须是唯一的。这个很好理解。这样带来的好处就是,我们在查询的时候,如果查询连续航,会极大的提高性能,比如查询ID在35-78之间的数据。只需定位35和78,取中间的就可以,不需要在去找其他的数据,这里要记住,虽然我们一般把主键建在聚集索引上,但是主键不等于聚集索引,主键的创建必须依赖于索引,默认创建的是聚集索引,但也可以是非聚集索引,如果对从表中检索的数据经常要用到某一列,则可以将该表的聚集索引建在这列上,避免每次查询该列时都进行排序,节省成本,聚集索引讲完了,下面讲非聚集索引,非聚集索引的逻辑顺序于物理存储顺序不同举一个经典的例子,字典大家都用过,我们用字典的时候,如果知道这个字念什么 但是不知道怎么写,可以直接去翻大致的页数,比如说安 an我们直接去翻前几页就可以,这可以理解为汉字按照拼音聚集索引了,如果我们不知道这个字念什么,但是却知道怎么写。就是根据偏旁部首去查这个字,然后直接翻页码找到那个字,但是根据部首目录查到的字的排序并不是真正的征文的排序顺序。比如查“张”字,查部首后,“张”字在672页,检字表中“张”下面是“驰”,但“驰”在390页,没有按顺序来,可以理解为汉字按照偏旁部首非聚集索引了。这样应该会很好的理解,这张图说明了聚集索引和非聚集索引的应用场景,很重要
大家大致看一下,最好保存起来。免得用的时候再查


索引的几个误区:①主键就是聚集索引②用了索引查询速度一定会显著提升③把所有需要提高查询速度的字段都加进聚集索引提高查询速度
    增删改查在对数据库的使用中,查是应用最广泛,使用最多,对性能影响最大的,而且删、改也需要先查,对于频繁新增记录的表,最好不要创建索引。
对于一个有索引的大表,多一个维护索引的操作,都可能导致Insert速度非常慢,创建索引会明显提高查询速度。因为可以由全表扫描改成索引扫描(实际索引下插入确实会慢,不过不会影响太大)


索引是通过二叉树的数据结构来描述的,聚集索引的叶节点就是数据节点。非聚集索引的叶节点仍是索引节点,但是有一个指针指向对应的数据

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值