前端之家收集整理的这篇文章主要介绍了
为什么清除SQLite数据库不会减小其大小?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
403_0@
我有一个
sqlite
数据库.
我创建了表并填充了大量的数据.
然后我通过删除和重新创建表来清除数据库.我确认所有的数据已被删除,表是空的,通过使用sqlite管理员查看它们.
问题是数据库文件(* .db3)的大小在清除之后保持不变.
这当然是不可取的,因为我想重新获得一旦我清楚了这些数据所占用的空间.
有没有人做过类似的观察和/或知道发生了什么?
可以做些什么呢?
从
here:
当一个对象(表,索引,触发器或视图)从数据库中删除时,它留下空的空间.下一次将新信息添加到数据库时,这个空的空间将被重用.但在此期间,数据库文件可能大于严格要求.此外,频繁插入,更新和删除可能导致数据库中的信息变得碎片化 – 将数据库文件全部删除,而不是集中在一起.
VACUUM命令通过将其内容复制到临时数据库文件并从副本重新加载原始数据库文件来清理主数据库.这消除了空闲页面,使表数据对齐,并以其他方式清理数据库文件结构.