前言
自己家里一直有私有qiandao.today
站,因为当初定位为个人使用,所以选择了更轻便方便的SQLite
数据库而没有选择MySql
,使用SQLite
数据库作为数据临时性的缓存,对多片区进行划分 SQLite
数据库文件,起初效率有明显的效率,但历经一数个月后数据库文件从几K也上升到了近100M,数据量也达到了 4多万条,虽然使用上的效率直观上没有造成太大的影响,但服务器的占用内存却比原来多占用了一些。今天刚好打算清除一个SQLite
的冗余数据,整理删除了数据库日志跟部分占用大的无用数据后,却发现SQLite
数据库文件占用空间的大小 一点没有少,这是为什么呢?
原因解析
当你从Sqlite
删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。(嘿嘿,Sqlite.org
的FAQ中提到过这个问题)
解决方法
在数据删除后,手动执行VACUUM
命令,执行方式很简单
VACUUM
命令会清空“空闲列表”,把数据库尺寸压缩到最小。但是要耗费一些时间,需要耐心等待,等待时间根据设备性能。
另外推荐用使用Navicat for Sqlite
来管理数据库。
软件打开数据库,点击查询按钮,新建查询,手工输入 VACUUM
即可。
关于数据删除
tpl表-->har包表(可把无用的签到条目删除)
tasklog表--> 签到日志(可全部删除)
获得模板
版权声明:本文为原创文章,版权归 Mark's Blog 所有,转载请注明出处!
本文链接:https://quchao.net/QianDao-SQLite.html
友情提示:如果博客部分链接出现404,请留言或者联系博主修复。
菜鸟真心看不懂啊