Bee Sharding V2.0, 增加分库分表的分片功能;分片就是如此简单,增加一行配置即可;
Bee 经过 10 几个版本的迭代,ORM 的基本功能已趋于成熟稳定; 现在增加Sharding功能,方便伙伴们提升分库分表的功能。
在ORM实现分片功能,更加简单,合理。
新增功能列表:
V2.0.0.1001 (2022・国庆节)
Sharding分片功能
1)面向对象分片
2)Suid,SuidRich,查询,更新分片
3)MoreTable多表查询分片
4)批量插入分片
5)MAX,MIN,COUNT,SUM,AVG分片查询分片
6)分页/排序分片
7)分片种类支持:分库分表,仅分库,仅分表
8)分片路由种类支持:一库一表,一库多表,多库多表,全库全表,只指定表,只指定库
9)通过Hint强制指定当次操作的分片路由(指定ds和table)
10)分片的广播表
11)Sharding分片配置支持
参考示例
//1. 分片配置
ShardingConfig.addShardingBean(Orders.class,new ShardingBean("ds[0..1].orders[0..5]", "userid"));
//2. 查询
Suid suid=BF.getSuid(); // 获取 select,update,insert,delete 操作对象
Orders orders1=new Orders();
orders1.setUserid(3L); // 分片值
List<Orders> list=suid.select(orders1,condition); // 查询 Orders 实体列表
其中:"ds [0..1].orders [0..5]", "userid" 表示,数据源有:ds0, ds1; ds0 里有:orders0,orders1,orders2; ds1 里有表:orders3,orders4,orders5; 表的分片键是:userid; 默认是根据表分片键(字段)的值,来路由到相应的表,如 条件 where userid =3, 则 3%6=3, 就会路由到表 orders3。Bee 默认还支持分片值是 String 的类型。
示例中,“//2. 查询” 注释的部分代码,是原来数据库没有分片时,ORM 用来查询的代码。在分片的情况下,只需要添加 “//1. 分片配置” 部分的代码即可;该部分是 Java 风格的配置,也可以使用 properties 风格的方式进行添加配置信息。
Bee 使用分片的相关配置:
#开启 Bee Sharding 分片功能进行分库分表
bee.dosql.multiDS.enable=true
bee.dosql.multiDS.sharding=true
# since v2.0 开启 Sharding 日志
bee.osql.showSQL=true
bee.osql.showShardingSQL=true
Bee Sharding 分片功能特点
1) 可以支持已实现 JDBC 规范的所有数据库;
2) 处理流程简单,无需对 sql 字符串进行解析;
3) 代码低侵入设计良好,如 DataSource 无需耦合 Bee 框架的代码;
4) 约定优于配置,使用最好的实现方案作为约定方式,配置简单,用户使用方便;
5) 通过解析实体对象获取分片信息,更准确;
6) 支持四则运算表达式;
7) 配置简单,使用方便;
8) ORM 工具内置支持,无需再使用其它 ORM 中间件;
9) 数据源不与 ORM 代码耦合。
相关文档:
分库分表 Sharding: 分库分表介绍 (目录)
分库分表 Sharding: 6. Sharing 最佳实践
https://my.oschina.net/u/6135906/blog/5583202
https://my.oschina.net/u/6135906/blog/5583196
Bee 是一个简单,易用,功能强大,开发速度快,编码少的 JAVA ORM 框架。连接,事务都可以由 Bee 框架负责管理. Bee 简化了与 DB 交互的编码工作量,是 编码复杂度 为 O(1) 的 Java 框架!
Bee 简单易用:单表操作、多表关联操作,可以不用写 sql, 极少语句就可以完成 SQL 操作;概念简单 ,10 分钟即可入门。
Bee 功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。从2.0开始,增加了Sharding分片功能,使用分库分表更方便!
Sharding功能,还在继续哦,有什么好的主意,赶紧告诉我们!打造一个你认为称心如意的ORM工具!
码云上的项目首页:
- https://gitee.com/automvc/bee
- https://gitee.com/automvc/bee-springboot
github:https://github.com/automvc/bee
还没有评论,来说两句吧...