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()) {
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()) {
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)) {
System.out.println(map);
}
更多更新说明,示例,下载
3.0 是大内存版的 2.X,因为虚拟机对直接操作内存的限制,并且GC密度也会增加,
综合性能不会提升,不用急着升级。
随着机器内存的增加,GC的减少,大量只读时性能会好于2.X。
与其它SQL数据库的性能对比
与MySQL8性能对比,Java
与SQLite性能对比,C#
切换不同的数据库文件目录位置,测试多次,可得更准确数据。