我有一个SQLite数据库.
我创建了表格并填充了大量数据.
然后我通过删除并重新创建表来清除数据库.我确认所有数据都已删除,并且使用SQLite Administrator查看表是空的.
问题是数据库文件(*.db3)的大小在清除后保持不变.
这当然是不可取的,因为我希望在我清除它之后重新获得数据占用的空间.
有没有人做出类似的观察和/或知道发生了什么?
可以做些什么呢?
从这里:
从数据库中删除对象(表,索引,触发器或视图)时,它会留下空白空间.下次将新信息添加到数据库时,将重用此空白空间.但与此同时,数据库文件可能比严格必要的更大.此外,频繁的插入,更新和删除可能导致数据库中的信息碎片化 - 在整个数据库文件中被刮掉,而不是在一个地方聚集在一起.
该VACUUM命令通过复制其内容到一个临时数据库文件并重新加载从复制原始数据库文件清理主数据库.这消除了空闲页面,将表数据对齐为连续,并以其他方式清理数据库文件结构.