如何通过写入事务减少内存使用量?

How to reduce the memory usage by a writing transaction?

似乎Xodus使用的内存量与写入交易的大小成正比(如果我错了,请纠正我)。所以对于大交易来说,这可能会成为一个问题,对于我的应用程序,我必须为 Xodus 选择更大的堆大小 "just in case" 的大型工作集。有没有办法减少内存使用?配置设置?启发式?

第一种可能的方法是将更改分成批次并使用 jetbrains.exodus.entitystore.StoreTransaction#flush 逐个刷新它们。例如,如果您想将 100K 个实体插入数据库,最好使用批处理。

如果您大量使用大型 blob,那么最好先将它们存储到临时文件中。