我正在搜索可以处理大型blob对象(最多几GB)的嵌入式本机Java数据库(我不能使用进程外数据库)。我已经尝试了H2,但是在删除大blob时这非常慢。当然这是因为它必须维护/重建单个数据库文件。
是否有任何数据库可以让我快速插入和删除blob?
更新:我最终没有使用数据库。相反,我创建了一个字节存储,将字节附加到打开的文件流,并将文件名,偏移量,长度存储在数据库中。未附加大blob但存储为独立文件。这是获得良好表现的唯一途径。删除操作只适用于大blob,对于小blob不需要它,大小无关紧要(我的阈值是100 KB)
您可以尝试JavaDB,它基本上是Apache Derby数据库。我认为它从版本6开始附带Java。 CLOB和BLOB限制为2 GB,不知道是否适合您。
它是否需要是纯Java数据库,还是使用本机库的数据库/ JDBC驱动程序?如果是这样,你可以看看Firebird Embedded和Jaybird。
免责声明:我是Jaybird的开发者之一