iBoxDB 3.0 发布,Java.NET 嵌入式数据库

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#
切换不同的数据库文件目录位置,测试多次,可得更准确数据。

猜你喜欢

转载自www.oschina.net/news/126922/iboxdb-3-0-released