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操作变多,查询性能变低

 

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

Soft21

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值