![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Sharding-JDBC
Mysql +Sharding-JDBC
骑驴的小牧童
小小的梦想,用心去守护
展开
-
Sharding-JDBC 核心之执行引擎
ShardingSphere采用一套自动化的执行引擎,负责将路由和改写完成之后的真实SQL安全且高效发送到底层数据源执行。 它不是简单地将SQL通过JDBC直接发送至数据源执行;也并非直接将执行请求放入线程池去并发执行。它更关注平衡数据源连接创建以及内存占用所产生的消耗,以及最大限度地合理利用并发等问题。 执行引擎的目标是自动化的平衡资源控制与执行效率。一、连接模式  ...原创 2020-10-15 16:14:30 · 734 阅读 · 1 评论 -
Sharding-JDBC 核心之归并引擎
111原创 2020-10-15 16:11:35 · 1084 阅读 · 0 评论 -
Sharding-JDBC 核心之路由引擎
路由引擎 无论是分库分表、还是读写分离,一个SQL在DB上执行前都需要经过特定规则运算获得运行的目标库表信息。路由引擎的职责定位就是计算SQL应该在哪个数据库、哪个表上执行。前者结果会传给后续执行引擎,然后根据其数据库标识获取对应的数据库连接;后者结果则会传给改写引擎在SQL执行前进行表名的改写,即替换为正确的物理表名。计算哪个数据库依据的算法是要用户配置的库路由规则,计算哪个表依据的算法是用户配置的表路由规则。目前在Shardi转载 2020-10-15 09:23:46 · 1078 阅读 · 0 评论 -
Sharding-JDBC 核心之解析引擎
Sharding-jdbc 官方文档讲的不是很全面和清楚,学习的时候特意再记录补充下官方文档地址:http://shardingsphere.apache.org/index_zh.html一、解析引擎如果在大学期间学习过计算机编程原理课程,SQL的解析是比较简单的。 不过,它依然是一门完善的编程语言,因此对SQL的语法进行解析,与解析其他编程语言(如:Java语言、C语言、Go语言等)并无本质区别。SQL解析引擎在 parsing包下:Lexer:词法解析器Parser:SQL解析器两者都原创 2020-10-13 16:01:12 · 1060 阅读 · 0 评论 -
Sharding JDBC (八) 分布式唯一主键
目录一、 Sharding-JDBC主键二、Twitter的分布式自增ID算法Snowflake雪花算法概述组成结构优点缺点:三、Sharding JDBC 使用Snowflake生成唯一主键ID配置文件制定使用DefaultKeyGenerator 类获取Snowflake时钟回拨问题一、 Sharding-JDBC主键软件项目开发中,主键自动生成是基本需求。而各个数据库对于该需求也提供了相应的支持,比如:数据库自增( MySQL, Oracle等).原创 2020-05-14 15:02:01 · 2822 阅读 · 0 评论 -
Sharding JDBC(七) 分片策略四:Hint强制路由HintShardingStrategy
一、Hint强制路由HintShardingStrategy在分库分区中,有些特定的SQL,Sharding-jdbc、Mycat、Vitess都不支持(可以查看相关文档各自对哪些SQL不支持),例如:insert into table1 select * from table2 where ....这种SQL 路由很麻烦,需要解析table2的路由(是在ds0 /ds1 table2_0/table_1),结果集归并,insert 语句也需要同样的路由解析。这种情况Sharding-jdbc可以使用H原创 2020-05-14 11:19:39 · 18639 阅读 · 10 评论 -
Sharding JDBC(六) 分片策略三:复合分片策略ComplexShardingStrategy
一、复合分片策略ComplexShardingStrategy提供对SQL语句中的=, IN和BETWEEN AND的分片操作支持 ComplexShardingStrategy支持多分片键 由于多分片键之间的关系复杂,因此Sharding-JDBC并未做过多的封装,而是直接将分片键值组合以及分片操作符交于算法接口,完全由应用开发者实现,提供最大的灵活度二、ComplexShardingStrategy配置实现Sharding -jdbc 在使用分片策略的时候,与分片算法是成对出现的,每种策略原创 2020-05-14 11:06:57 · 12250 阅读 · 2 评论 -
Sharding JDBC(五) 分片策略二:Inline行表达式分片策略InlineShardingStrategy
Inline表达式分片策略InlineShardingStrategy使用Groovy的Inline表达式,提供对SQL语句中的=和IN的分片操作支持。 InlineShardingStrategy只支持单分片键 对于简单的分片算法,可以通过简单的配置使用,从而避免繁琐的Java代码开发,如: tuser${user_id % 8} 表示t_user表按照user_id按8取模分成8个表,表名称为t_user_0到t_user_7 StandardShardingStrategy配置实现S.原创 2020-05-14 10:59:34 · 8097 阅读 · 1 评论 -
Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy
一、标准分片策略StandardShardingStrategy提供对SQL语句中的=, IN和BETWEEN AND的分片操作支持 StandardShardingStrategy只支持单分片键,提供PreciseShardingAlgorithm(精准分片)和RangeShardingAlgorithm(范围分片)两个分片算法 PreciseShardingAlgorithm是必选的,用于处理=和IN的分片 RangeShardingAlgorithm是可选的,用于处理BETWEEN AND分原创 2020-05-14 10:45:23 · 14408 阅读 · 4 评论 -
Sharing JDBC (三) Mysql Replication主从复制 、环境搭建 、读写分离配置
目录一、环境2.1 mysql2.2 Spring Boot一、环境2.1 mysql2.2 Spring Boot引入依赖:原创 2020-05-09 17:47:18 · 1782 阅读 · 0 评论 -
Sharding JDBC (二)分库分表关键问题与解决方案
目录一、分库分表产生问题的原因二、分库分表带来的难点问题2.1 分布式全局唯一ID2.2 常见分片规则和策略2.3 跨分片技术问题2.4 跨分片事务问题三、系统是否分库分表分析一、分库分表产生问题的原因得瑟得瑟二、分库分表带来的难点问题2.1 分布式全局唯一ID2.2 常见分片规则和策略2.3 跨分片技术问题2.4 跨分片事务问题三、系统...原创 2020-04-22 16:32:40 · 9368 阅读 · 2 评论 -
Sharding JDBC (一)数据库分库、分表
知识要点一、什么是分库分表二、为什么要分库分表三、分库分表有哪些形式3.1、3.2、四、分库分表组件有哪些五、分库分表组件对比一、什么是分库分表分库分表就是按照一定的规则,对原有的数据库和表进行拆分,把原本存储于一个库的数据分玦存储到多 个库上,把原本存储于一个表的数据分块存储到多个表上。分表就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应...原创 2020-04-22 14:48:25 · 896 阅读 · 2 评论