24、UUID:如何高效生成全局的唯一ID你好,我是微扰君。 今天我们来聊一聊在生产环境中非常常用的一个算法——全局唯一ID生成算法,也就是我们通常说的UUID。 就和我们在社会中都有自己的身份证号作为自己的唯一标示一样,在互联网的应用中,很多时候,我们需要能生成一个全局唯一的ID,去区别不...2025-12-08业务开发算法50讲
25、一致性哈希:如何在集群上合理分配流量你好,我是微扰君。 上一讲我们学习了在分布式系统中,生成全局唯一ID的两种方式,既可以通过引入独立组件远程调用申请ID,也可以通过约定的方式让各个节点独立生成唯一ID。 那对于有多个节点的服务,其他服务或者客户端在访问这个服务的时候,具体应该访问哪一...2025-12-08业务开发算法50讲
26、B+ Tree:PostgreSQL 的索引是如何建立的你好,我是微扰君。 过去几讲我们学习了一些经典的分布式算法,主要涉及多个节点之间的协作方式,在现在的业务场景下,它们更多被封装在各种中间件或者类库中,直接供我们使用,不过背后的很多思想还是很值得好好学习体悟的。 从今天开始,我们将更加贴近日常业务开发...2025-12-08业务开发算法50讲
27、LSM Tree:LevelDB的索引是如何建立的你好,我是微扰君。 上一节我们学习了数据库中非常常用的索引数据结构——B+树,在过去很多年里它都是数据库索引的首选实现方式,但是这种数据结构也并不是很完美。 因为,每次修改数据都很有可能破坏B+树的约束,我们需要对整棵树进行递归的合并、分裂等调整操作...2025-12-08业务开发算法50讲
28、MVCC:如何突破数据库并发读写性能瓶颈你好,我是微扰君。 过去两讲,我们学习了数据库中查询优化的一个重要手段——索引,通过空间换时间的思想,从数据结构查询本身的时间复杂度和IO开销两个角度,去提高查询的速度。除此之外,查询能做的优化其实还有很多,比如同样的语句在采用不同查询计划的情况下,...2025-12-08业务开发算法50讲
29、位图:如何用更少空间对大量数据进行去重和排序你好,我是微扰君。 今天我们从一道非常经典的面试题开始说起,看看你能否用之前学过的知识回答出来,题目是这样的:QQ,相信你肯定用过,假设QQ号(也就是用户的ID)是一个10位以内的数字,用一个长整型是可以存储得下的。 现在,有一个文件里存储了很多个Q...2025-12-08业务开发算法50讲