如何缩小 sqlite 数据库?
一旦完成将所有数据存储到sqlite中,它已经达到了14 MB。这就是为什么我担心有些人无法从连接慢速区域下载我的应用程序。有没有办法缩小sqlite数据库?
一旦完成将所有数据存储到sqlite中,它已经达到了14 MB。这就是为什么我担心有些人无法从连接慢速区域下载我的应用程序。有没有办法缩小sqlite数据库?
你试过真空吗?
VACUUM 命令将重建整个数据库。应用程序可能执行此操作的原因有多种:
- 除非 SQLite 在“auto_vacuum=FULL”模式下运行,否则当从数据库文件中删除大量数据时,它会留下空白空间或“可用”数据库页。这意味着数据库文件可能大于绝对必要的大小。运行 VACUUM 重建数据库将回收此空间并减小数据库文件的大小。
- 频繁的插入、更新和删除可能会导致数据库文件变得碎片化 - 其中单个表或索引的数据分散在数据库文件周围。运行 VACUUM 可确保每个表和索引在很大程度上连续存储在数据库文件中。在某些情况下,VACUUM还可以减少数据库中部分填充的页面数量,从而进一步减小数据库文件的大小...
VACUUM 命令的工作原理是将数据库的内容复制到临时数据库文件中,然后用临时文件的内容覆盖原始文件。覆盖原始文件时,回滚日志或预写日志 WAL 文件与任何其他数据库事务一样使用。这意味着,在对数据库进行 VACUUMing 时,可用磁盘空间中需要的大小是原始数据库文件大小的两倍...