![]() |
1
1
LiteDB中有几个原因可以分配比Direct更多的内存
要理解这一点,您需要知道您键入的类被转换为
此外,要序列化此类(插入时),LiteDB必须创建一个
不仅如此,LiteDB还必须跟踪要存储在日志区域中的原始数据。所以这个尺寸可以翻一番。
要反序列化,LiteDB必须执行相反的过程:将所有页面从磁盘读取到内存,将所有页面连接到一个单独的页面
对于小对象,此操作正常。这个内存对每个新文档的读/写都是重复使用的,因此内存保持控制。 在下一个v5版本中,这个过程有一些优化,比如:
对于未来的版本,我想使用新的
但是,在任何NoSQL数据库中,存储一个值为185000的单个文档都是最好的解决方案。MongoDB限制bson文档大小为16MB(早期版本限制为~368KB)…我将LiteDB限制为1MB In v2…但我删除了这个支票大小,只是添加了一个建议,以避免大的单个文档。 尝试将类分成两个集合:一个用于数据,另一个用于每个值。您还可以将这个大数组拆分为块,如litedb filestore或mongodb gridfs。 |
![]() |
2
0
首先,按照创建列表的方式,它将为262.144个元素预留空间,因为 growth algorithm . 您应该事先设置项目数量以避免出现这种情况(或者可能只是一起使用数组):
就LiteDB而言,如果您不需要数据库(以及它带来的潜在开销),只需将其存储在您自己的数据结构中。如果您不实际使用数据库并且只存储一个项目,我看不到数据库的任何好处。 |