iboxdb教程 java_iBoxDB 3.0 发布,Java.NET 嵌入式数据库

2022-04-13 00:00:00 数据库 支持 镜像 类型 性能

iBoxDB是一个功能全面的嵌入式 Java .NET NoSQL 数据库,非常容易使用。

每个BOX都是一个独立的数据空间,有效防止数据侵入破坏一致性,

对静态类型的优化,对动态类型的缓存,使用哪种编程方式都能得到佳性能。

安装简单,维护容易,实时完成远程主从镜像或本地数据库文件镜像。

支持平台:

Java .NET Xamarin Mono Unity Android Windows Linux Blazor Wasm

更新内容:

1.支持创建动态类型的原型

//创建原型定义动态列类型,近似创建类定义对象列类型。

Ason prototype = new Ason("id:", 0L, "name:", "guest");

Ason obj = prototype.select();

obj.set("id", "123");

//这里输出class Long,而不是class String

System.out.println(obj.get("id").getClass());

2.支持事务组团提交

import iboxdb.localserver.*;

import iboxdb.localserver.replication.*;

DB.root("../");

long dbAddress = 1L;

DB db = new DB(dbAddress);

db.getConfig().ensureTable(prototype, "table", "id");

AutoBox auto = db.open();

int buffer = 1024 * 1024 * 100;

try (Box box1 = auto.cube()) {undefined

Ason obj1 = prototype.select();

obj1.set("id", box1.newId());

obj1.set("name", "BOOK 01");

box1.d("table").insert(obj1);

box1.commit(buffer);

}

try (Box box2 = auto.cube()) {undefined

Ason obj2 = prototype.select();

obj2.set("id", box2.newId());

obj2.set("name", "BOOK 02");

box2.d("table").insert(obj2);

box2.commit();

}

//上面两个事务会组合在一起提交

System.out.println(auto.select("from table"));

3.支持热复制数据库文件镜像

long mirrorAddress = System.currentTimeMillis();

auto.getDatabase().copyTo(new Mirror(mirrorAddress), buffer);

DB mirror = new DB(mirrorAddress);

AutoBox mirrorAuto = mirror.open();

System.out.println(mirrorAuto.select("from table"));

4.对于小数据库,支持跳过数据库表结构直接Select数据

auto.getDatabase().close();

mirrorAuto.getDatabase().close();

for (Map map : DB.select(dbAddress)) {undefined

System.out.println(map);

}

更多更新说明,示例,下载

3.0 是大内存版的 2.X,因为虚拟机对直接操作内存的限制,并且GC密度也会增加,

综合性能不会提升,不用急着升级。

随着机器内存的增加,GC的减少,大量只读时性能会好于2.X。

与其它SQL数据库的性能对比

与MySQL8性能对比,Java

与SQLite性能对比,C#

切换不同的数据库文件目录位置,测试多次,可得更准确数据。
————————————————

原文链接:https://blog.csdn.net/weixin_29349579/article/details/114505732

相关文章