首页 > 解决方案 > 内存中的sqlite数据库是否需要vacuum?

问题描述

我使用内存中的 sqlite 数据库在多个线程之间对一些东西进行排队,因此我们有很多写入、读取和删除。但是数据库中的大小一次不会超过几 KB。现在有些客户在使用较长时间后抱怨内存使用情况,我想知道 sqlite 的内存数据库是否也受到碎片的影响?是否也需要 VACUUM 内存数据库?

这个数据库被多个线程使用,我不能为一些 VACUUM 锁定所有线程。还是所有连接都只是等到 VACUUM 完成然后照常返回?当我从我的线程启动 VACUUM 时,如果另一个线程正在执行事务,会发生什么?

旁注:我已经在我的程序中检查了内存泄漏,但这是我要考虑的另一个选项,因为 valgrind 目前没有发现任何问题。而且这样的 sqlite 存储内存使用当然不是传统方式的内存泄漏。

标签: sqlitevacuum

解决方案


推荐阅读