我需要建立一个储存文件格式用于一些简单的数据以表格格式,是试图使用HDF5但只有约定,由于一些问题,我想要重新审查使用嵌入式数据库,看看他们是足够快的我的应用程序。

是有一个有信誉的嵌入式Java数据库,以储存数据在一个文件?唯一一个我所知道的是源码(Java绑定)。我试图H2和HSQLDB但出的框他们似乎创建的几个文件,并强烈希望我有一个数据库,在一个文件。

编辑: 合理的快速性能是重要的。象存储;对业绩的关切,我只需要存储整数和Blob。(+一些串但没有性能至关重要的)

编辑2: 储存数据的效率是重要的,对于较大的数据集,因此XML。

有帮助吗?

解决方案 10

我认为现在我只是要继续使用HDF5于持久性数据储存、与H2或一些其他数据库,用于存中的索引。我不能得到源码使用Blob Java驱动程序,我有,我不能埋火鸟建立和运行,我不相信H2与PAGE_STORE。

其他提示

亚硝酸数据库 http://www.dizitart.org/nitrite-database.html

非sql目(NO2。k.亚硝酸盐)数据库是一个开放源非sql 嵌入式文件存储Java编写的与MongoDB像API。它的 支持存和单一文件基础的持久性存储。

如果你只需要阅读访问,然后H2是能够 读取的数据库文件从一个压缩文件.

同样,如果你不需要的持久性有可能有一个存储器版本的H2。

如果你需要读写访问和持久性,那么你可以走运用标准SQL型数据库,因为这些几乎所有保持均匀的索引和数据文件分开。

H2仅使用一个文件,如果使用最新的H2建立与PAGE_STORE的选择。这是一个新的功能,所以它不可能稳固。

有一次我使用一个目数据库中保存的数据文件。它有一个Java和一个.网接口。你可能想要检查它。这就是所谓 创建db4o.

编年史地图 是一个嵌入的纯Java数据库。

  • 它将数据存储在一个文件,i。e.

    ChronicleMap<Integer, String> map = ChronicleMap
        .of(Integer.class, String.class)
        .averageValue("my-value")
        .entries(10_000)
        .createPersistedTo(databaseFile);
    
  • 记载地图上是成熟的(没有严重的储存的错误报道几个月的现在,而这是在主动使用)。

  • 独立基准显示,史地图 最快的最高效率的存储器 关键价值的商店Java。

主要缺点在于使用的情况是,记载地图上支持只有一个简单的关键价值的模型,然而更为复杂的解决办法可以是建立在它的上面。

免责声明:我是开发人员的编年史地图。

如果你是在寻找一个小型和快速数据库也许船舶的另一个程序,我会检查 Apache德比 我不知道你如何定义的嵌入数据库,但我用这在一些项目作为一个调试的数据库,可以检查与源,并可在每一个开发机瞬时的。

这不是一个SQL引擎,但是如果您使用 Prevayler坦克, 你可以很容易地建立一个单一的XML文件的所有数据。(Prevayler呼吁它的快照的文件。)

虽然它不是基于SQL,因此需要一点苦干,它的自足性质使开发(特别是良好的测试)更加容易。另外,这是令人难以置信的快速和可靠。

你可能想看看 jdbm -我们用它在几个项目,这是相当快。它不会使用2的文件(一个数据库文件和记录文件)如果您使用酸类型应用程序,但你可以直接向直接访问数据库(没有登录文件),如果你不需要固体酸。

JDBM会很容易地支持整数和blob(任何你想要的),而是以相当快的速度进行。这不是真的设计并发,所以你必须要管理锁定自己如果你有多线程,但是如果你是在寻找一个简单的、固的嵌入式数据库,这是一个好的选择。

由于你所提到的源码,我假定你不介意的一个原db(只要好java绑定)。 火鸟 工程以及与java,并且单一的文件存储的默认。

两H2和HSQLDB将是优秀的选择,如果你没有单一文件的要求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top