2020年下半年高级架构设计师论文

2020年11月7日我参加了高级架构设计师的考证,以前在私企工作时,时间都比较紧,大家都不太会去关注一系列的考证。2018年到了国企工作,有一定的自由时间,为了不在游戏和头条中荒废度日,我决定去考证,一来可以申请减免个税,二来可以加强理论知识的掌握,给自己充充电。

 

      本次高级架构设计师考证下午论文题目之一:论数据库分库常用算法hash算法,一致性算hash法,range分段算法。考后查询了一下资料,我居然答对了,希望自己能过吧。

 

 1:什么是hash算法

      hash算法是指对某一字段取hash值来确定你的数据应该落在那个分库上,常用的hash算法就是对某一字段求模取余。

 

 1.1:hash算法优点

第一:数据分布相对比较均匀,不容易出现热点和并发访问的瓶颈。

第二:算法简单,一眼就知道数据落入那个分库。使用分库字段进行范围查

          找时,可快速定位分库进行快速查询,有效避免跨分库查询的问题。

 

 1.2:hash算法缺点

第一:后期分库集群扩容时,需要迁移旧的数据很难,往往需要重新计算和

          移动数据,数据抖动太厉害。

第二:容易面临跨库查询的复杂问题(解决这个问题的较好处理方式是针对

          业务的一个唯一标记做hash,保证涉及这个业务的所有数据都落入

          同一个分库来避免跨库操作)。

  

 2:什么是一致性hash算法

      一致性hash算法描述起来比较复杂,大家可以百度下“一致性hash环”,了解其原理也就了解一致性hash算法。本文主要分析下优缺点

2020年下半年高级架构设计师论文_第1张图片

2.1:一致性hash算法优点

第一:数据冷热分别均匀,不会出现数据库瓶颈问题

第二:数据集群扩展或者分库宕机,造成的数据抖动较小

 

3:什么是range分段算法

      range分段算法比较简单,就是针对某一数值字段做分段,比如1-1000落入分库1,1001-2000落入分库2,2001-3000落入分库3.....

 

3.1:range分段算法优点

第一:算法简单,一眼就知道数据落入那个分库,使用分库字段进行范围查

         找时,连续分库可快速定位分库进行快速查询,有效避免跨分库查询

         的问题。

第二:表大小可控

第三:利于水平扩展

 

3.2:range分段算法缺点

     缺点亦很明显,数据冷热分布不均衡,热点数据容易产生瓶颈问题。例如按时间字段分库,有些分库存储最近时间段内的数据,可能会被频繁的读写,而有些分库存储的历史数据,则很少被查询。

 

你可能感兴趣的:(2020年下半年高级架构设计师论文)