数据库
首页 > 数据库> > 数据库水平扩展——分表分库

数据库水平扩展——分表分库

作者:互联网

注意点:无论按哪个纬度分表,订单号需要全局唯一,且需要包含库id和表id,以便定位。或者建一张订单号与分表纬度之间的关联表,并加载到缓存中。

此处以餐饮系统为例:按shopid分表

水平分表分库的方式一般有三种:

  1. 按范围分表,比如:shopid在1到1w的放在0表,shopid在1w1到2w的放在表1

优点:易于扩展
缺点:数据分散不均匀,容易出现单表瓶颈

  1. hash分表(硬hash),比如:

优点:数据分散均匀
缺点:不易扩展,扩展需要做数据迁移。

  1. 一致性hash

特点:hash环、虚拟节点


这种情况是指销售平台上既有分买家又分买家

既需要根据userid查也需要根据shopid查

建冗余表,按用户id分表,再通过中间件异步按买家id分表。

原因:满足两个纬度的查询要求

qq_16399457 发布了24 篇原创文章 · 获赞 0 · 访问量 145 私信 关注

标签:分库,hash,32,数据库,shopid,取整,分表,id
来源: https://blog.csdn.net/qq_16399457/article/details/103951398