B+树、LSM树学习与思考

一、B+树:

传统关系型数据库使用较多。如mysql的InnoDB引擎,默认就是B+树

特点:

①针对磁盘存储而优化的N叉排序树,自小而大顺序链接。

②N棵子树的结点中含有M个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子节点
③B+树最多三层,最多需要5次访问,3次获得数据索引,一次数据文件读,一次数据文件写
④B+树读快速,因为有顺序。但是写的时候,如果跨度大,随机IO访问,效率低,磁盘寻道速度不快(技术停滞)影响性能

下图来自网络

二、LSM(Log-Structured Merge-Trees)

特点和形成原理:

读写之间平衡,舍弃部分读的效率,提升写的效率。
①一颗大树变成小树(B+就是三层大树),各小树内部排序并写入内存(所以速度快)。
②达到一定数量小树就写入磁盘。
③磁盘的小树到一定量的时候会合并(merge)变成大一点的树
④读取的时候比B+慢,因为多个小树,要逐个遍历,但每颗小树上面都是有序的

下图来自网络

三、扩散思考

balance的重要性

如网格一般。“田”字形了解一下,或魔法的三维结构,每个小格子都是在“balance”,形成一整个“魔方”


纵向均衡:

①数据读写效率均衡。

②算法的时间复杂度和空间复杂度均衡


横向均衡:

网络,计算机不同维度之间的均衡

①网络均衡,交换机或路由器负载均衡,http请求负载均衡。

②应用服务器负载均衡 

继续细拆

微服务即可诞生,各个服务之间的均衡,相对于所需硬件设备的均衡。

请求量小的服务,配置低些即可。

关键业务,请求量大的服务亦是如此,"balance"一下就好

四、再度发散

工业领域中的建筑,地基是根本。使建筑坚固的原因是"金字塔"结构,三角形的稳定性(这就不扯到数学了)。底面大,上方小(跟微服务一般,有重点地"balance")——>上海东方明珠

桥梁中:每隔一段距离的桥拱也是"balance,设计成"箱梁"(发散到工程力学吧——实心的桥梁,中心部分材料对抗弯性能的影响很小,反而增加了自重

物理,数学,工程,软件。

"道"不变,变的是"术",术业专攻即可

参考:大型网站技术架构 (豆瓣)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值