为什么清除SQLite数据库不会减少其大小?

为什么清除SQLite数据库不会减少其大小?,sqlite,Sqlite,我有一个SQLite数据库 我创建了表格,并用大量数据填充它们 然后,我通过删除并重新创建表来清除数据库。通过使用SQLite Administrator查看表,我确认所有数据都已删除,表为空 问题是数据库文件(*.db3)的大小在清除后保持不变 这当然是不可取的,因为我希望在清除数据后重新获得数据占用的空间 有没有人做过类似的观察和/或知道发生了什么 对此可以做些什么?来自: 从数据库中删除对象(表、索引、触发器或视图)时,会留下空白。下次将新信息添加到数据库时,将重用此空白空间。但同时,数据

我有一个SQLite数据库

我创建了表格,并用大量数据填充它们

然后,我通过删除并重新创建表来清除数据库。通过使用SQLite Administrator查看表,我确认所有数据都已删除,表为空

问题是数据库文件(*.db3)的大小在清除后保持不变

这当然是不可取的,因为我希望在清除数据后重新获得数据占用的空间

有没有人做过类似的观察和/或知道发生了什么

对此可以做些什么?

来自:

从数据库中删除对象(表、索引、触发器或视图)时,会留下空白。下次将新信息添加到数据库时,将重用此空白空间。但同时,数据库文件可能比严格要求的要大。此外,频繁的插入、更新和删除可能会导致数据库中的信息变得支离破碎——在整个数据库文件中被乱写,而不是集中在一个地方


VACUUM命令通过将主数据库的内容复制到临时数据库文件并从副本中重新加载原始数据库文件来清理主数据库。这将消除空闲页,将表数据对齐为连续,并以其他方式清理数据库文件结构。

数据库大小的工作方式类似于水位线,例如,如果水位上升,水位线上升,当水位下降时,水位线停留在原来的位置


您应该查看缩小的数据库

结束事务;真空