sharding-jdbc

1、垂直分库

  按照业务功能把功能不相关的表分到不同的是数据库当中

2、垂直分表

  对于同一个业务表,把高频字段和低频字段分别放在两个表当中

3、水平分库

  如果单一个表的数据量过大,可以把它拆分成多个表,并且放到多个数据库当中

4、水平分表

  如果单一个表的数据量过大,可以把它拆分成多个表,并且放到一个数据库当中

5、分库分表引起的问题:分布式事务,跨节点join问题,跨节点分页,排序,聚合函数,主键需要全局唯一

6、SQL解析,查询优化,SQL路由(单片路由,多片路由,范围路由,广播路由),SQL改写,SQL执行,结果归并

7、核心功能:数据分片,读写分离

8、基本概念:逻辑表,真实表,数据节点,绑定表(专门对于垂直分表来设计的),广播表(公共表每个数据库创建一份),分片建,分片算法,主键生成策略(雪花算法)

9、配置内容:数据源,数据节点,分库策略,主键生成策略,分片策略

10.分片算法:精确分片算法、范围分片算法、复合分片算法、Hint分片算法(ThreadLocal和SQL注释)

分片策略(分片建+分片算法)

解析引擎-->路由引擎-->改写引擎-->执行引擎-->归并引擎

原文地址:https://www.cnblogs.com/erdanyang/p/12896943.html