Bee Sharding 增加流式查询,分页查询内存优化,降低内存消耗 (V2.0.0.1207)
新增流式查询,分页查询内存优化;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: 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 工具!
码云上的项目首页:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Rubik:基于 Kotlin 的 Android 组件化开发框架开源!
前言 随着Android平台的飞速发展,许多老牌App,都发展成了所谓的“超级应用”,不但功能模块众多、代码量巨大,团队规模更是扩大到了几十人甚至上百人的规模。一线大厂的旗舰应用,甚至可能涉及到多个部门的协同开发。 在这个过程里,必然的产生了一些“代码复用”和“协同效率”方面的问题。所以,组件化开发逐渐被各个大厂提上了日程。如今,移动端开发除了要解决“代码”方面的问题,也需要关注“工程”方面的问题。 2022年,百度网盘App迎来了10周年,在这10年的发展过程中,我们也遇到过各种各样的的“工程”问题,为了解决这些问题,我们引入了组件化开发,而Rubik就是在这个过程中诞生的。 关于Rubik Rubik由百度网盘团队出品,从2019年开始建设,至今已经迭代了两个大版本,并在多款线上产品中得到应用。 Rubik是一套解决Android平台组件化的综合框架,也就是说,Rubik在帮助我们实现模块解耦的同时,还能能够提供一些组件管理能力。Rubik所提供的模块解耦能力是一种基于“函数路由”的组件间低耦合通讯方案。组件管理能力能够帮助我们实现组件的版本控制、maven发布、aar/jar与...
- 下一篇
SQLAlchemy 2.0.0 Beta 4 发布,Python ORM 框架
SQLAlchemy 2.0的第四个 Beta 版本已发布。 SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,2.0.0b4 目前已接近可以正式发布的状态。尤其是新的基于注释的声明性功能,包括数据类 (Python Dataclasses) 支持。这些功能在 Beta 测试期间受到很多关注,关于注解和数据类映射的不同风格的各种问题已被报告并完成了修复,以及一系列与类型相关的修复和改进,以继续允许完全严格的类型而不需要插件。 此外,在 schema、SQL 渲染和 SQL 类型系统中也有新的改进,以及其他的优化和修复。这些改进和修复要么已经在 SQLAlchemy 1.4.44 中发布,要么将在 1.4.45 中发布。 开发团队表示,当前的 2.0 已经非常接近于“功能冻结”状态,由于该版本积累了一系列变化,一旦发布可能会导致长时间的调整。此外,2.0 Beta 版本目前每天平均只有几千次下载,而 1.4 版本在工作日平均每天下载量约为 130 万次。因此,团...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19