PPS*_*ein 16 java sqlite android
完成将我的所有数据存储到sqlite后,它已经达到14 MB.这就是为什么我担心有些人无法从连接缓慢区域下载我的应用程序.有没有办法缩小sqlite数据库?
Hot*_*cks 24
你试过VACUUM吗?
VACUUM命令重建整个数据库.应用程序可能会执行此操作有几个原因:
- 除非SQLite以"auto_vacuum = FULL"模式运行,否则当从数据库文件中删除大量数据时,它会留下空白空间或"空闲"数据库页.这意味着数据库文件可能比严格必要的大.运行VACUUM以重建数据库会回收此空间并减小数据库文件的大小.
- 频繁的插入,更新和删除可能导致数据库文件碎片化 - 单个表或索引的数据散布在数据库文件周围.运行VACUUM可确保每个表和索引在数据库文件中大部分连续存储.在某些情况下,VACUUM还可以减少数据库中部分填充页面的数量,进一步减小数据库文件的大小......
VACUUM命令的工作原理是将数据库的内容复制到临时数据库文件中,然后使用临时文件的内容覆盖原始文件.覆盖原始文件时,使用回滚日志或预写日志 WAL文件,就像使用任何其他数据库事务一样.这意味着当VACUUMing数据库时,在可用磁盘空间中需要的数量是原始数据库文件的两倍...
将@Tono Nam 的评论放入答案中。具有完整语法的示例总是非常有帮助的。
在命令行中运行以下命令来使用该vacuum命令:
sqlite3 /path/to/your/db/foo.db 'VACUUM;'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20988 次 |
| 最近记录: |