iBoxDB 2.33/2.27 发布,环保型嵌入式数据库
iBoxDB是一杯浓缩的 Java .NET 嵌入式 NoSQL 数据库,简洁清香。
优化静态类型数据,缓存动态类型数据,无论使用哪种编程方式都能得到最佳性能。
安全稳健,从语法解析上去掉了SQL注入的可能。
使用编程语言的逻辑操作数据,并且每段代码有独立的数据空间,无需担心外部注入数据破坏一致性。
安装简单,维护容易。
支持平台
Java .NET Xamarin Mono Unity Android Windows Linux Blazor Wasm
更新内容:
1. 优化缓存预读,性能提升 -1%到+5%。
2. 调整了设置类 。
3. 方便的动态类型与闭包编程。
通过在iBoxDB中引入的一种快速生成动态对象的结构 Ason,代码例子在后面。
更多更新说明,示例,下载。
性能对比
执行相同量的数据处理,显示iBoxDB有更高的能效比,绿色节能环保。
与MySQL8性能对比 Java11
与SQLite性能对比 C#8
测试前要关闭IDE等工具,直接运行最终编译文件。
连续运行几次会有更好性能。
Ason演示例子, 三表连接操作。
package example;
import iBoxDB.LocalServer.*;
import static iBoxDB.LocalServer.Ason.*;
import static iBoxDB.LocalServer.IFunction.*;
import static example.AsonExample.Names.*;
import java.util.Map;
public class AsonExample {
public static void main(String[] mainargs) {
DB.root("../");
var db = new DB(1);
db.getConfig()
.ensureTable(new Ason(Id, 0L), Table1);
db.getConfig()
.ensureTable(new Ason(Id, 0L), Table2)
.ensureIndex(new Ason(JoinTable1, 0L), Table2);
db.getConfig()
.ensureTable(new Ason(Id, 0L), Table3)
.ensureIndex(new Ason(JoinTable2, 0L), Table3);
var auto = db.open();
long id1start;
try (var box = auto.cube()) {
id1start = box.newId(1, 0);
for (int t1 = 0; t1 < 100; t1++) {
long id1 = box.newId(1, 1);
var obj1 = new Ason(Id, id1, Value1, "T1-" + id1);
box.d(Table1).insert(obj1);
for (int t2 = 0; t2 < 3; t2++) {
long id2 = box.newId(2, 1);
var obj2 = new Ason(Id, id2, JoinTable1, id1, Value2, "T2-" + id2);
box.d(Table2).insert(obj2);
for (int t3 = 0; t3 < 2; t3++) {
long id3 = box.newId(3, 1);
var obj3 = new Ason(Id, id3, JoinTable2, id2, Value3, "T3-" + id3);
box.d(Table3).insert(obj3);
}
}
}
CommitResult cr = box.commit();
}
var joinList = new JoinList();
try (var box = auto.cube()) {
box.selectCount("from Table1 where Id >= ? & Id <=? & [*]", id1start, id1start + 5,
func((_a, args1) -> {
var map1 = (Map<String, Object>) args1[0];
var id1 = map1.get(Id);
box.selectCount("from Table2 where JoinTable1 == ? & [*]", id1,
func((_b, args2) -> {
var map2 = (Map<String, Object>) args2[0];
var id2 = map2.get(Id);
box.selectCount("from Table3 where JoinTable2 == ? & [*]", id2,
func((_c, args3) -> {
var map3 = (Map<String, Object>) args3[0];
joinList.newRow(map1).join(map2).join(map3);
return true;
}));
return true;
}));
return true;
})
);
}
for (var row : joinList) {
System.out.println(row.toString());
}
auto.getDatabase().close();
}
public static class Names {
public static String Id = "Id";
public static String JoinTable1 = "JoinTable1";
public static String JoinTable2 = "JoinTable2";
public static String Table1 = "Table1";
public static String Table2 = "Table2";
public static String Table3 = "Table3";
public static String Value1 = "Value1";
public static String Value2 = "Value2";
public static String Value3 = "Value3";
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
分布式监控系统 WGCLOUD v2.3.6 发布,新增网络监控模块
WGCLOUD基于java语言开发,是springboot构建的监控系统,支持高并发高性能,核心模块包括:服务器集群监控,ES集群状态监控,CPU监控,内存监控,数据监控,服务心跳检测,应用进程管理,磁盘IO监控,系统负载监控,监控告警信息推送。 此次更新,新增了网络监控模块,动态检测主机数据包和发送接受字节。 码云源码下载:https://gitee.com/wanghouhou/wgcloud GITHUB源码下载:https://github.com/tianshiyeben/wgcloud 安装包下载:http://www.wgstart.com
-
下一篇
NutzBoot v2.4.0.v20200427“单车”
nutzclold-perce API 网关,重装归来。 变更: 1.update: nutzclold-perce 强化nacos支持, 服务信息固定配置, 动态发现新服务, 都有了 2.update: 更新jetty版本, 顺便更新一堆demo 3.update: jetty支持更详细的cookie控制 更新说明:https://gitee.com/nutz/nutzboot/releases/v2.4.0.v20200427
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Dcoker安装(在线仓库),最新的服务器搭配容器使用