分库分表
文章平均质量分 92
天黑请闭眼丶风
这个作者很懒,什么都没留下…
展开
-
分库分表四:shardingjdbc内核解析和核心源码分析
ShardingSphere有3个产品。但是它们的数据分片主要流程是完全一致的。 流程核心由以下几部分组成。相对于其他编程语言,SQL是比较简单的。 不过,它依然是一门完善的编程语言,因此对SQL的语法进行解析,与解析其他编程语言(如:Java语言、C语言、Go语言等)并无本质区别。解析过程分为词法解析和语法解析。 词法解析器用于将SQL拆解为不可再分的原子符号,称为Token。并根据不同数据库方言所提供的字典,将其归类为关键字,表达式,字面量和操作符。 再使用语法解析器将SQL转换为抽象语法树。例如原创 2022-09-20 17:01:44 · 1700 阅读 · 1 评论 -
分库分表三:ShardingJDBC进阶实战案例下
首先来来了解什么是SPI。在Apache ShardingSphere中,很多功能实现类的加载方式是通过SPI注入的方式完成的。Service Provider Interface (SPI)是一种为了被第三方实现或扩展的API,它可以用于实现框架扩展或组件替换。Apache ShardingSphere之所以采用SPI方式进行扩展,是出于整体架构最优设计考虑。原创 2022-09-16 14:27:16 · 1812 阅读 · 0 评论 -
分库分表番外:多数据源/动态数据源实现
比如在电商网站中可能会有这样的需求:根据用户所在城市不同,查询不同城市的商品数据。而在后台,这些不同城市的数据被分配在不同的数据库当中。很多人想当然的就觉得需要使用ShardingJDBC来实现多数据源管理。这种场景就是一个典型的多数据源切换的场景。但是我们仔细分析这样的场景,他跟分库分表其实并不太相同。ShardingJDBC固然可以使用Hint策略实现快速的数据库分库查询。原创 2022-09-15 18:18:50 · 1062 阅读 · 0 评论 -
分库分表二:ShardingJDBC进阶实战案例上
在实际生产中,我们通常根据id作为分片键,但是往往在查询的时候会根据时间来查,比如订单,某个时间段,或者根据某个时间段进行统计订单的数量,这种情况如果只用id作为分片键,就会导致全表全库扫描。虽然到此功能实现了,但是还有一些瑕疵,比如根据id查询的时候如何确定查询那个库而不是全部都查,其实这个可以把时间添加到id上面去,这需要自定义主键生成策略,这个后面在优化。根据时间可以确定了要查哪些库,但是没法确定查哪些表,所以根据时间范围都是6月份以内,所以查1库,由于没法确定id奇偶数所以表1表2都查。原创 2022-09-15 11:27:55 · 1242 阅读 · 0 评论 -
分库分表一:ShardingSphere介绍和入门实战
ShardingSphere是一款起源于当当网内部的应用框架。在2017年开始开源。并逐渐由原本只关注于关系型数据库增强工具的ShardingJDBC升级成为一整套以数据分片为基础的数据生态圈,更名为ShardingSphere。到2020年4月,已经成为了Apache软件基金会的顶级项目。ShardingSphere包含三个重要的产品,ShardingJDBC、ShardingProxy和ShardingSidecar。原创 2022-09-14 16:29:00 · 2539 阅读 · 0 评论