分库分表都有哪些算法?——Java全栈知识(10)

ops/2024/9/24 7:47:36/

分库分表都有哪些算法 ?

1、hash 取模

通过分片键进行 hash 取模,取模的数量就是分表的数量。
缺点: 不利于扩容

2、关键词分表

通过创建时间等的关键字来进行分表,例如一个月一张表等。
优点: 方便扩容
缺点: 可能造成数据倾斜

3 、一致性 hash

一致性哈希可以按照常用的 hash 算法来将对应的 key 哈希到一个具有 2^32 次方个节点的空间中,形成成一个顺时针首尾相接的闭合的环形。所以当添加一台新的数据库服务器时,只有增加服务器的位置和逆时针方向第一台服务器之间的键会受影响。
image.png
其次,一致性哈希算法可以动态添加虚拟节点映射,在不增加表的情况下,减少数据倾斜。
image.png
具体可见:什么是一致性 Hash 算法?


http://www.ppmy.cn/ops/33090.html

相关文章

数据分析-----方法论

什么是数据分析方法 数据分析方法:将零散的想法和经验整理成有条理的、系统的思路,从而快速地解决问题。 案例: 用户活跃度下降 想法: APP出现问题?去年也下降了吗?是所有的人群都在下降吗&#xff1f…

Visual studio调试技巧

Visual studio调试技巧 bug是什么?Debug和ReleaseDebugRelease 如何调试VS调试快捷键调试过程中查看程序信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息 编译常见错误编译型错误链接型错误运行时错误 bug是什么? bug的英文释…

C语言实战项目--贪吃蛇

贪吃蛇是久负盛名的游戏之一,它也和俄罗斯⽅块,扫雷等游戏位列经典游戏的行列。在编程语言的教学中,我们以贪吃蛇为例,从设计到代码实现来提升大家的编程能⼒和逻辑能⼒。 在本篇讲解中,我们会看到很多陌生的知识&…

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系,同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题,比其他模型表现更好。使用的注意力机制是神经架构的一部分,使其能够动态突出显示输入数据的…

vue 设置输入框只能输入数字且只能输入小数点后两位,并且不能输入减号

<el-input v-model.trim"sb.price" placeholder"现价" class"input_w3" oninput"valuevalue.replace(/[^0-9.]/g,).replace(/\.{2,}/g,.).replace(/^(\-)*(\d)\.(\d\d).*$/,$1$2.$3)"/> 嘎嘎简单、、、、、、、、、

自动化软件的开发流程——CI和CD

在软件开发过程中&#xff0c;最容易出问题的阶段是将多个开发者开发的程序统一到一起的时候。即使每个程序都进行了严格的测试&#xff0c;运行起来没有问题&#xff0c;但是将它们作为一个统一的系统运行时&#xff0c;就有可能出现无法正常执行的情况。 如果能够在早期发现…

ETL工程师介绍

ETL工程师是负责ETL&#xff08;Extract, Transform, Load&#xff09;过程的专业人员。ETL是数据仓库和数据集成的关键组成部分&#xff0c;用于从多个不同的数据源中提取数据&#xff0c;对数据进行转换和清洗&#xff0c;最后加载到目标数据存储中。 ETL工程师的主要职责包…

python面试算法题

在给大家来一道算法题&#xff0c;很经典的算法题&#xff0c;希望大家从这个算法题中能学到更多东西&#xff0c;以及逻辑上的东西&#xff0c;喜欢的小伙伴点赞收藏 def isValid(s):stack []mapping {): (, }: {, ]: [}for char in s:if char in mapping:top_element sta…