mysql分库键,mysql分库分表

在跨库分片的情况下,未分片的数据如何保存:

1、在每个分片库上都保留一份相同数据,配置多写的数据源,由于数据更新不会放置在同一个事物中,所以要定期检查确保数据的一致性

2、使用额外节点统一存储,但是由于业务需要讲分片数据跟公共数据联合查询,只能分别查询得到结果,最后组合在一起返回结果,查询效率相对说比较差

节点上部署分片的三种方式:

1、每个分片使用单一数据库,并且数据库名称相同

2、将多个分片表存储在一个数据库中,并在表名上加入分片号后缀

3、同一节点上部署多个数据库,每个数据库包含一个分片

如何分派分片中的数据:

根据业务选取最佳分片方式:

基于  数据存储的平均分配   和   访问量的平均,热点数据可能会集中,导致某些分片服务器的负载较高  俩方面的考量

1>按分区键的hash值取模来分配分片数据

2>按分区键range范围来分配分片数据

3>利用分区键和分片的映射表来分配分片数据  [  对数据存储可以指定分片位置,区键和分片的对应关系表会有很大的读压力,建议使用缓存  ]

全局唯一ID

1、使用mysql的auto_increment_increment和auto_increment_offset参数

auto_increment_increment 要设置成和分片节点的数量相等的值,决定了每一次自增ID增长的步长

缺点:不适用于一个节点保存多套分区表

2、使用全局节点来生成ID,由于全局节点生成唯一ID,效率可能会比较低,成为瓶颈

3、在redis等缓存服务器中创建全局ID

案例:

待完善~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值