Btree 与 Btree + 的区别

mysql 的优化,主要就是索引的优化。因而需要对索引的数据结构有一个了解。最常用的索引就是B+tree  索引,而且B+tree  是由Btree 演变而来。在讲解btree 之前,首先说一下系统对磁盘的读取。

        计算机系统通过将磁盘的内容读入内存中然后才对数据进行操作。当然不可能将全部磁盘的内容读入内存。一般是以磁盘块的大小进行读入,也就是常说的IO操作。mysql  常用的数据库引擎 innodb则采用 页的方式进行磁盘读取。页,是一种磁盘管理的方式。所以通过减少IO操作,来提高数据库查询效率。

     Btree 索引是一种数据结构。每个节点一般包括  键值、数据库记录除键值外的数据,指针(指向子节点的指针)。

     B+tree  索引 的每个非叶子节点一般包括键值 ,指针,只有叶子节点才包括数据。

由于 Btree 索引 每个节点(一般每个节点对应于一个磁盘块)也存储数据,所以每个节点存储的键值会很少,导致需要很多节点,导致树的深度增加,而树的深度就是磁盘IO的次数,而B+tree 非叶子节点不存储数据,所以每个节点存储的键值相应的增多,从而树的深度降低,提高了查询效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值