如果我查看数据库的数据库设置(使用SQLite Manager),我的freelist_count为16.根据this source,空闲列表计数是
数据库文件中未使用的页数
未使用的网页是什么意思?为什么有不可用的网页?自由列表大于零是不是很糟糕?我该怎么做才能将数字减少到零?
答案 0 :(得分:2)
来自SQLite FAQ:
(12)我删除了很多数据,但数据库文件没有变小。这是一个错误吗?
没有。从SQLite数据库中删除信息时,未使用的信息 磁盘空间被添加到内部“空闲列表”,并在下一个重用 你插入数据的时间。磁盘空间不会丢失。但也不是 返回操作系统。
如果删除大量数据并想缩小数据库文件,请运行 VACUUM命令。 VACUUM将从头开始重建数据库。 这将使数据库具有空的空闲列表和文件 尺寸很小。但请注意,VACUUM可能需要一些时间 运行(在Linux机器上每兆字节大约半秒 SQLite是开发的,它可以使用多达两倍的临时磁盘 空间作为原始文件运行时。
从SQLite 3.1版开始,是使用VACUUM命令的替代方法 是自动真空模式,使用auto_vacuum pragma启用。
拥有一些免费页面没什么不好,除非他们占用大量空间。根据应用程序的需要,由您来决定“无所谓”的结束位置并启动“重要”。