Bee Sharding 增加流式查询,分页查询内存优化,降低内存消耗 (V2.0.0.1207)

时间:2022-12-07 08:09:32

新增流式查询,分页查询内存优化;Bee Sharding V2.0, 增加分库分表的分片功能;分片就是如此简单,增加一行配置即可;

Bee 经过 10 几个版本的迭代,ORM 的基本功能已趋于成熟稳定;现在增加 Sharding 功能,方便伙伴们提升分库分表的功能。

在 ORM 实现分片功能,更加简单,合理。

新增功能列表:

V2.0.0.1207 (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 工具!

 

码云上的项目首页:

github:https://github.com/automvc/bee