快速查询的秘籍—B+树索引下

大家好,我是热心的大肚皮,皮哥。今天我们接着聊一聊索引,不多说,开整。索引的分类InnoDB索引分为聚簇索引、二级索引、联合索引。聚簇索引上一篇我们聊到的索引就是聚簇索引,它有以下两个特点。使用记录主键值的大小进行记录和页的排序,包含3种含义。1、页中的数据根据主键的大小形成单向链表,分成不同的组,每个组中主键最大记录在页内的偏移量当作槽存在页目录中,其中infimum为头,supremum为尾,通过二分法可快速查找。2、各个存放用户记录的页根据主键大小形成双向链表。3、存放目录项的页分为
摘要由CSDN通过智能技术生成

大家好,我是热心的大肚皮,皮哥。今天我们接着聊一聊索引,不多说,开整。

索引的分类

InnoDB索引分为聚簇索引、二级索引、联合索引。

聚簇索引

上一篇我们聊到的索引就是聚簇索引,它有以下两个特点。

  • 使用记录主键值的大小进行记录和页的排序,包含3种含义。
    1、页中的数据根据主键的大小形成单向链表,分成不同的组,每个组中主键最大记录在页内的偏移量当作槽存在页目录中,其中infimum为头,supremum为尾,通过二分法可快速查找。
    2、各个存放用户记录的页根据主键大小形成双向链表。
    3、存放目录项的页分为不同的层级,同层级也根据主键大小形成双向链表。
  • B+树的叶子节点存放了用户记录的全部内容,包括隐藏列。
    这就是聚簇索引,而且mysql会主动帮我们创建,其次所有的记录存放在叶子节点,正所谓索引即数据,数据即索引。

二级索引

如果我们想提高其他的列作为查询条件的性能怎么办呢?这时候二级索引就派上用场了,我们可以多创建几颗B+树,举个例子,我们把c2列创建索引,这类二级索引与聚簇索引有些不同,如下所示。

  • 使用记录主键值的大小进行记录和页的排序。这个特性与聚簇索引一致,只不过把主键换为c2列。
  • 目录项纪录中存放的是c2列+叶号。
  • B+树的叶子节点存放的数据不是用户记录的全部信息,而是c2列与主键。

那么是怎么查询呢?以c2=4举例。

  • 首先根据目录项查询第一条c2&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热心的大肚皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值