Mysql系列01 -- bTree+基础

https://img2018.cnblogs.com/blog/1644694/201905/1644694-20190505155026646-1387513390.png

  1. bTree+只有叶子节点存放数据,非叶子节点存放键值+指针
  2. bTree+包含了顺序,用二分查找法进行搜索,所以用自增id有很大好处:新索引在索引右边插入即可,不需要对叶子节点进行挪动(当前页数据刚好满时,甚至需要对页分裂)
  3. 主键索引(聚簇索引)中包含了整行的完整数据;非主键索引(二级索引)最终指向改行数据的主键Id;所以开发中提倡多用getEntityById这样的实体访问,访问性能最佳
  4. 非主键索引,先找到pk,然后从pk加载对应的数据(回表操作)
  5. 主键索引和非主键索引数据,平时都存储在磁盘文件中;根据内存分配大小和访问策略,热数据驻留在缓存innodb_buffer_pool中,缓存起来
  6. 为什么不用bTree: 因为B树不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少(有些资料也称为扇出),指针少的情况下要保存大量数据,只能增加树的高度,导致IO操作变多,查询性能变低

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值