MySQL中InnoDB的一级索引、二级索引 即聚簇索引 密集索引和稀疏索引

8 篇文章 1 订阅

MySQL中InnoDB的一级索引、二级索引

即聚簇索引 密集索引和稀疏索引

聚簇索引:表数据文件本身就是按B+Tree组织的一个索引结构(它的物理存放顺序和逻辑顺序一一对应),这棵树的叶节点data域就是数据页,因此保存了完整的数据记录。innodb主键索引是是用聚簇索引来组织表且真实物理存储顺序只有一种,因此一个表中必须要有一个主键索引,如果没有设置聚集索引,默认使用主键来作为聚集索引。

每个InnoDB表具有一个特殊的索引称为聚簇索引(也叫聚集索引,聚类索引,簇集索引)

如果表上定义有主键,该主键索引就是聚簇索引。

如果未定义主键,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为主键,InnoDB使用它作为聚簇索引。

如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。

表中的聚簇索引(clustered index )就是一级索引,除此之外,表上的其他非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。

有时候会看到网上说什么密集索引和稀疏索引,其实这里的密集指的就是每个索引记录上有没有包含整条数据记录。

有包含就叫密集索引

没有包含就叫稀疏索引

比如说聚簇索引就叫密集索引,其他索引就叫稀疏索引

不过密集索引和稀疏索引也有另一种实现,像Kafka实现的稀疏索引就是,不是所有数据都加对应的索引记录,而是每隔一定的字节数建立了一条索引,在查数据时,先查出离这个数据最近的索引,然后再从最近索引出发,往下查。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cmy_CTO

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

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

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

打赏作者

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

抵扣说明:

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

余额充值