【HBZ分享】Mysql聚簇索引 与 非聚簇索引

Mysql的索引结构有哪些?

  1. B+Tree 和 Hash结构
  2. 平时所说的索引都包含: 聚簇索引,组合索引,覆盖索引,前缀索引,唯一索引,这些默认都是【B+Tree】。
  3. 主流的InnoDB和Myisam引擎都是用的是B+Tree。

B+Tree的特点

  1. B+Tree是在B-Tree上的一个变种,将B-Tree的每个节点都存储key-data变成了只有叶子结点才会存储data
  2. Mysql的B+Tree的叶子结点是一个【双向链表】,注意:传统的B+Tree叶子结点是单向链表,Mysql做了变种,所以Mysql的叶子结点是双向链表。
  3. B+Tree的非叶子节点是不存储数据的,只会存储key,因此他比B-Tree能存储更多的key,并且层数要比B-Tree更加稳定,一般来说3层就够用了。

聚簇索引 与 非聚簇索引

  1. 聚簇索引就是key和data都在一个节点上,而非聚簇索引是key和data是分开的,即key = 【索引内容】,而data=【主键id】,想查具体数据,要带着主键值去主键索引里面查。
  2. 我们所说的主键索引就是聚簇索引。而我们设置的联合索引,就是非聚簇索引,需要通过回表查询来完成数据查找,回表的意思就是带着主键值去主键索引查找。
  3. 索引聚簇索引的性能更高,非聚簇索引由于多了个回表查询,因此通常性能不如聚簇索引。
  4. innodb是聚簇索引,而myisam是非聚簇索引,但都是B+Tree结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值