分库分表概要讲解
作者:互联网
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
标签:分库,概要,数据源,查询,拆分,分表,数据,按照 来源: https://blog.csdn.net/sunguojian111/article/details/117877828