我正在搜索一个嵌入式 native Java 数据库(我无法使用进程外数据库),它可以处理大型 blob 对象(最多几 GB)。我尝试过 H2,但是删除大 Blob 时速度非常慢。当然,这是因为它必须维护/重建单个数据库文件。
是否有任何数据库可以让我快速插入和删除 blob?
更新:我最终没有使用数据库。相反,我创建了一个字节存储,将字节附加到打开的文件流中,并将文件名、偏移量、长度存储在数据库中。大 blob 不会被附加,而是存储为独立文件。这是获得良好表现的唯一方法。删除操作仅适用于大 blob,小 blob 不需要它,大小微不足道(我的阈值是 100 KB)
最佳答案
Are there any databases that will give me fast insert and delete with blobs?
如果H2不起作用那么你可以尝试Derby或SQLite但不能保证他们会表现得更好。我认为你应该考虑重新构建你的项目。以这种方式存储大型 blob 对象效率非常低。
我会考虑使用其他机制来保存文件并将文件的路径或 ID 存储在数据库中。您提到您有理由不使用文件系统。如果您编辑问题来解释完全使用数据库的原因,那么我/我们可以回复更好的建议替代方案。
关于java - 插入、删除(快速)blob 嵌入式 java 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325022/