数据库索引概念和分类

本文介绍了数据库索引的主要目的——加快搜索速度,并详细讲解了索引的结构和分类,包括聚集与非聚集、稠密与稀疏、有序与散列。重点探讨了B+树索引的工作原理,包括查询过程和维护机制,以及插入操作可能导致的节点扩展和分裂。此外,还提及了散列索引,强调了散列函数和桶的概念,区分了静态散列与动态散列的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 索引的目的
    简而言之,加快搜索

  2. 索引结构
    这里写图片描述

  3. 索引分类
    聚集–非聚集
    稠密–稀疏
    有序–散列

    几种分类并不冲突

  4. 顺序索引
    顺序索引前文讲过了,请参考http://blog.youkuaiyun.com/luzhangting/article/details/51497513。下面给个例子,以中间列为索引。
    这里写图片描述

  5. 简单的辅助索引
    这里写图片描述

  6. B+树索引
    树节点三类:根节点、叶节点、非叶节点

    6.1叶节点结构
    这里写图片描述

    6.2非叶节点结构
    这里写图片描述

    6.3 B+树的查询过程
    B+不仅支持随机查询,也支持范围查询。
    查询过程:树的遍历
    查询代价:log n

    6.4 B+树的维护(重点)
    例1:插入例子,插入Clear,B、D之间扩展,指针不够,向上扩展
    这里写图片描述
    这里父节点未满,引入新的节点。
    这里写图片描述
    例2:插入40
    这里写图片描述
    需要插入到第5个节点,但是节点满了,需要进行分裂,分裂成2个节点
    这里写图片描述
    此时父节点指针不够用,向上分裂。
    这里写图片描述
    此时父节点的指针又不够用了,接着向上,根节点没有满,不用分裂,可以直接插入值,此时应该插入40,因为40是这一分支追溯到叶节点的最小值。
    这里写图片描述

  7. 散列索引
    重点:散列函数、搜索码值,B个桶。根据B是否固定分为静态散列和动态散列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值