插入,删除(快速)blob嵌入式java数据库

问题描述 投票:1回答:3

我正在搜索可以处理大型blob对象(最多几GB)的嵌入式本机Java数据库(我不能使用进程外数据库)。我已经尝试了H2,但是在删除大blob时这非常慢。当然这是因为它必须维护/重建单个数据库文件。

是否有任何数据库可以让我快速插入和删除blob?

更新:我最终没有使用数据库。相反,我创建了一个字节存储,将字节附加到打开的文件流,并将文件名,偏移量,长度存储在数据库中。未附加大blob但存储为独立文件。这是获得良好表现的唯一途径。删除操作只适用于大blob,对于小blob不需要它,大小无关紧要(我的阈值是100 KB)

java database performance blob
3个回答
0
投票

是否有任何数据库可以让我快速插入和删除blob?

如果H2不起作用,那么你可以尝试DerbySQLite,但不能保证他们会表现得更好。我认为你应该考虑重新设计你的项目。以这种方式存储大blob对象效率非常低。

我会考虑使用其他一些机制来保存文件并在数据库中存储文件的路径或id。您提到您有理由不使用文件系统。如果您编辑问题以解释完全使用数据库的原因,那么我/我们可以回应更好的建议替代方案。


0
投票

您可以尝试JavaDB,它基本上是Apache Derby数据库。我认为它从版本6开始附带Java。 CLOB和BLOB限制为2 GB,不知道是否适合您。


0
投票

它是否需要是纯Java数据库,还是使用本机库的数据库/ JDBC驱动程序?如果是这样,你可以看看Firebird EmbeddedJaybird

免责声明:我是Jaybird的开发者之一

© www.soinside.com 2019 - 2024. All rights reserved.