sqlite删除数据后,占用空间不变的原因
当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。Sqlite.org的FAQ中提到过这个问题
mysql也有这种问题,但是原因不一样,这个具体参考这位大佬的文章。
https://blog.youkuaiyun.com/qq_35190492/article/details/109735448?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161031398716780299073560%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161031398716780299073560&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-109735448.first_rank_v2_pc_rank_v29&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88mysql%E4%B8%8D%E5%BB%BA%E8%AE%AEdelete%E5%88%A0%E9%99%A4%E6%95%B0%E6%8D%AE&spm=1018.2226.3001.4187
解决方法
可以在命令界面,执行 VACUUM 命令,即可sqlite文件磁盘空间的释放。
任意开发环境下都相同,通过sql接口直接输入,VACUUM 即可实现