首页>>前端开发
最的做的项目中要有到sqlite数据存储,写了测试程序进行测试,存入300万条记录,占用flash大小为 86.1M,当把表中的记录全部删除后发后数据库文件大小依然是 86.1M;
原因是:
sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空间,这就导致删除数据乃至清空整个数据库后,数据文件大小还是没有任何变化,还是很大
解决方法:两种
一,在数据删除后,手动执行VACUUM命令,执行方式很简单
sqlite> vacuum;
VACUUM命令会清空“空闲列表”,把数据库尺寸压缩到最小。但是要耗费一些时间。
FQA里面说,在Linux的环境下,大约0.5秒/M。并且要使用两倍于数据库文件的空间。
我憎恨此FQA,他只说系统环境,不说机器硬件环境。我在测试手机上执行用了将近13秒时间压缩了将近3M的空间。至于它所占用的另一部分空间,是生成了一个.db-journal后缀名的临时文件。(这个问题对我现在来说是无所谓的。)
使用navicat连接sqlite db库
假如需要进行sqlite文件磁盘空间的释放,可以在命令界面,执行一下命令:
VACUUM
VACUUM命令会清空“空闲列表”,把数据库尺寸压缩到最小。
二,在数据库文件建成中,将auto_vacuum设置成“1”。
注意:只有在数据库中未建任何表时才能改变auto-vacuum标记。试图在已有表的情况下修改不会导致报错。
cmd.CommandText = "PRAGMA auto_vacuum = 1;"
cmd.ExecuteNonQuery()
当开启auto-vacuum,当提交一个从数据库中删除除数据的事物时,数据库文件自动收缩。
数据库会在内部存储一些信息以便支持这一功能,这使得数据库文件比不开启该选项时稍微大一些。
我的表结构,不含任何数据是,数据库文件大小是25K左右,开了auto_vacuum之后是26K。
插入运行基础数据后,文件变成35K,开了auto_vacuum之后是36K。
变化不大,无所谓。
但是第二个方法同样有缺点,只会从数据库文件中截断空闲列表中的页, 而不会回收数据库中的碎片,也不会像VACUUM 命令那样重新整理数据库内容。实际上,由于需要在数据库文件中移动页, auto-vacuum 会产生更多的碎片。而且,在执行删除操作的时候,也有那个.db-journal文件产生。
要使用auto-vacuum,需要一些前题条件。 数据库中需要存储一些额外的信息以记录它所跟踪的每个数据库页都找回其指针位置。 所以,auto-vacumm 必须在建表之前就开启。在一个表创建之后, 就不能再开启或关闭 auto-vacumm。
其实按照运行时间上的比较,两个在做了大删除操作后,从3M变到35K的时间其实差不多,执行VACUUM命令稍微长一点,但是也长不了多少,相对而言,这种一点点的长可以忽略不计。
加上AUTO的方式对碎片的造成情况,如果数据交换次数多的话,这种方式很不合适。
猜你喜欢
- 2022-11-10 【官方文档】百度搜索网站被黑防范指南
- 2022-11-03 【干货必备】百度搜索优质内容指南
- 2022-08-01 百度隐藏“快照”功能:原因未知-百度快照没了?
- 2022-06-20 浅析“百度搜索基础信息设置规范”!
- 2022-06-15 SEO尴尬,有排名,没流量,没咨询,怎么办?
- 2022-05-16 IE浏览器宣布6月16日退役 Edge浏览器将接棒
- 搜索
-
- 2023-09-21 1分钟,学会爆量素材创作要点
- 2023-09-07 优化师过了30岁,还能找到好工作吗?
- 2023-09-05 看完就能用,SEM推广方法论!
- 2023-08-28 又又又升级了!百度搜索新增“AI稳投”
- 2023-08-25 “抄”爆同行素材,这样搞!
- 2023-08-25 如何利用A/B测试,优化广告素材?
- 2023-08-18 一键起量,百度搜索又一重磅升级!
- 2023-08-17 小红书,再不做就晚了!
- 2023-08-10 广告素材这样设计,点击率翻5倍!
- 2023-08-03 百度竞价太卷了,怎么办?
- 2023-08-02 信息流渠道如何选择?4大渠道优劣对比
- 2023-07-28 14个技巧,让你的页面转化提高一倍!
- 2019-11-01 Origin DNS error:使用百···
- 2020-06-20 “401 - 未授权: 由于凭据无效,访···
- 2020-12-01 一级域名好还是二级域名好?
- 2020-10-13 百度抓取诊断工具一直抓取失败怎么办?
- 2019-12-09 域名解析后,网站返回状态码511应对方法
- 2019-08-12 网站出现“403,服务器上文件或目录拒绝···
- 2021-04-13 html/txt文件中文用浏览器打开有乱···
- 2020-09-03 element.style样式的修改
- 2021-01-06 百度移动端的搜索结果上线“踩顶”功能,对···
- 2019-11-06 正确打开.db数据库文件的两种方式,避免···
- 2020-10-20 UC神马搜索怎么做快速排名优化
- 2020-04-10 百度下拉框怎么刷?刷百度下拉框软件原理及···
- 2023-02-03 流量运营的核心精华,又何止1000种方法
- 2019-10-17 「福利贴」在线转换网站:webp格式转G···
- 2020-04-03 深度解读:seo之《百度搜索优质内容指南···
- 2020-04-24 大企业seo为什么不外包?
- 2022-05-10 90%的内容,没有获得搜索流量,还需要生···
- 2020-05-12 「想让排名好,不妨看看」合肥seo分享关···
- 2020-03-17 熊掌号的百度名称取消展示!熊掌号这次真的···
- 2019-10-29 蜘蛛没来抓取网站?这个要点必须掌握
- 2022-08-23 JS代码实现导航菜单栏随滚动条向下滚动时···
- 2021-05-20 SEO排名,4月-5月,暴涨暴跌,怎么回···
- 2019-10-22 9102年,发外链还有用吗?
- 2020-09-28 网站SEO日志哪里看怎么分析?
- 热门标签
-
- Error 1016
- Origin DNS error
- 源DNS服务器错误
- element.style
- css
- .db文件
- 域名解析
- 别名解析
- CNME解析
- A记录
- asp.net
- php
- jsp
- 开发语言对比
- 宝塔
- 白名单
- 香港主机
- 主机白名单
- 301
- 301重定向
- 301永久重定向
- 个人备案
- 企业备案
- 网站备案
- 500错误
- 锚点跳转
- 字体大小
- 用户体验
- 虚拟主机
- 网站搭建
- 自适应网站
- web前端
- 移动端
- 响应式网站
- 网站被黑
- 后台入侵
- 源码安全
- 备案驳回
- 阿里云备案
- ftp
- flashfxp
- js空链接
- 阿里云服务器
- 实例类型
- 织梦cms
- 开源CMS
- 百度转码
- 禁止转码
- 伪元素选择器
- 伪类选择器
- CSS3
- 网站建设
- 低成本网站
- 域名备案
- win10连接远程服务器
- 谷歌插件
- Chrome
- 蜘蛛
- 屏蔽蜘蛛
- 服务器流量
- 网站流量耗尽
- 网站体验设计
- 老年用户
- 网站安全
- html标签
- seo标签
- X-Powered-By
- robots.txt
- 服务器空间
- 网站空间选择
- 网站设计
- seo要点
- seo建站方案
- pbootcms
- 权限设置
- 0收录
- 新域名收录
- 网站收录
- 独立ip主机
- seo服务器
- 服务器稳定性
- 网站续费
- dede
- 分页样式代码
- 网站标签
- 标签优化
- javascript
- 编程语言
- 营销型网站
- 定制网站
- filter
- 滤镜
- PbootCMS
- sqlite
- mysql
- 数据库
- SQL
- Sqlite
- css3