分库分表概要讲解

1、拆分规则:垂直拆分、水平拆分

2、适用场景及特点:

     2.1、垂直拆分:一般是按照业务维度进行拆分,不同的业务,按照相应的模块进行拆分,比如订单表,客户表等;当然也有同一个业务表按照不同的维度进行拆分;

            好处:业务解耦,扩展方便,承载更大请求

            问题及解决:

                 1、联表查询  : 字段冗余,数据同步,全局表(广播表)

                  2、分布式事务: Atomikos,  Seata,  LCN 

    2.2、水平拆分:一般是单表数据过大,讲一个表拆分成多个子表

             问题及解决:

               1、联表问题

                2、翻页查询

                3、全局ID,auto increatement不满足

                4、拆分规则的选择:

                      要秉持:均匀,扩容,查询方便,迁移简单

                         1、随机

                         2、取模: hash % 

                         3、范围

                            4、枚举:比如,按照地域划分

                 

   要根据实际情况选择拆分规则, 比如基于取模划分数据,那么按照时间查询,则需要汇总各个节点的数据。   但是要是基于时间的划分呢,要面对热点数据的问题,要是只是统计最近一段时间的数据,则有些节点永远不会请求,就没有达到负载均衡的目的

 

3、数据源选择问题:

        如果分库分表,会有多个数据源,可以考虑在在那一层进行数据源的获取

     3.1 应用层(编码)---abstractrouteDataSource

     3.2  框架增--mybitis

     3.3 协议层jdbc-  shardingjdbc

     3.4 代理层---mycat

  

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值