释放sqlite文件占用的多余空间

释放Sqlite文件占用的多余空间 当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。sqlite这种处理方式自有它的道理之处,但有些场景,我们还是希望删除了数据之后,被删除数据所占用的空间也得以释放。用navicat连接上sqlite文件,删除数据之后,在界面执行“VACUUM”语句。然后,就可以看到删除数据之后,被删除的数据空间被回收。 阅读详情

当删除sqlite文件里的数据之后,会发现sqlite文件占的磁盘空间并不会缩小,那是因为:
当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。
sqlite这种处理方式自有它的道理之处,但有些场景,我们还是希望删除了数据之后,被删除数据所占用的空间也得以释放。这要怎么做呢?其实很简单。
方法一:
用navicat连接上sqlite文件,删除数据之后,在界面执行“VACUUM”语句
在这里插入图片描述
方法二:
第二种方法是在数据库驱动下操作的,其实原理跟第一种一样:

sqliteDBDriver.ExecuteNonQuery(CommandType.Text, "VACUUM");

然后,就可以看到删除数据之后,被删除的数据空间被回收。

sqlite数据库 压缩 释放数据冗余空间 sqlite数据库文件经多次添加删除操作后 文件占用磁盘空间过大 c++压缩文件代码 sqlite数据库文件经多次添加删除操作后 文件占用磁盘空间过大 c++压缩文件代码 测试调用TestFunction.h文件 bool commit_vacuum(CString strFilename);函数 立即下载

相关推荐

FFmpeg魔改指南:让RTMP协议完美兼容H265的三种方法(含SRS适配技巧)

本文详细介绍了三种让RTMP协议兼容H265编码的FFmpeg魔改方案,包括基于官方补丁的标准改造、Intel的SVT-HEVC集成方案以及金山云的自定义扩展方案。文章重点解析了各方案的实现原理与适配技巧,并提供了在SRS 6.0服务器上进行深度配置和性能调优的完整实战指南,帮助开发者解决H265推流至传统RTMP服务器的兼容性问题。

weixin_29290947的博客 194

SQLite删除数据占用空间不变的解决方法

这几天使用SQLite发现个问题,原空数据库只有10K,往数据库写1M的数据,写完数据之后,数据库房有将近1034K左右,这时再将数据清空,发现数据库的大小依然没变,还是1034,我就奇了怪了,朋友告诉我应该是VACUUM的原因,网上了查了下,网上的解释如下:      当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有

2877

MPC模型预测控制实战:从理论到代码实现(Python示例)

本文详细介绍了MPC模型预测控制的实战应用,从理论到Python代码实现。通过构建系统模型、预测方程、优化问题及约束处理,展示了如何实现一个完整的MPC控制器。文章还提供了水箱液位控制的应用案例,帮助读者掌握MPC在工业控制中的实际应用。

weixin_42653691的博客 459

释放Sqlite数据库占用的多余空间

当删除sqlite数据库中的数据之后,会发现内容确实删除掉了,但是sqlite数据库占用的磁盘大小没有缩小,那是因为,删除数据后,未使用的磁盘空间被添加到一个内在的“空闲列表”中用于储存你下次插入的数据,磁盘空间并没有丢失,但是也不向操作系统返回磁盘空间,1、利用navicat删除数据之后,执行VACUUM语句即可。2、在自己的代码中执行。

世间所有的相遇都是久别重逢 1925

AFSim仿真系统—几何视角下的子系统交互机制解析

本文深入解析了AFSim仿真系统中子系统交互的几何机制。通过剖析世界坐标系、实体坐标系、部件坐标系等七层空间定位体系,阐述了传感器探测、目标指示等交互行为背后的几何原理与限制条件。掌握这套几何视角,是构建高保真、符合物理现实的AFSim仿真模型的关键,能有效避免坐标混乱、交互失效等常见问题。

terraform7cloud的博客 490

简话 RAG 本地部署(DeepSeek + RAGFlow)

RAG = DeepSeek + OLlama + Docker + RAGFlow + Windows 11 简话 RAG 本地部署

捉虫客 de 博客 1万+

解决Sqlite数据库,数据删除后占用空间不变的问题

sqlite数据库库文件在使用过后,随着数据的增多,文件大小也会随之变大。但是在把所有表中数据删除以后发现sqlite数据库文件大小没有变化,还是占用原来大小的空间。 造成这种情况的原因是:sqlite在之前使用的时候,随着数据的插入,会分配磁盘空间来供使用,在删除数据以后,未使用的磁盘空间会被添加到一个内在的“空闲列表”中用于存储下次插入的数据,磁盘空间不会随着数据的删除而释放给操作系统。

liangyj66的博客 7313

Python实战:5分钟搞定VCF文件中每个样本的SNP统计(附bcftools安装指南)

本文介绍了三种高效统计VCF文件中每个样本SNP数量的Python方法,包括原生解析、结合bcftools的推荐方案以及使用PyVCF3专业库。特别推荐bcftools结合Python的方法,适用于中大型VCF文件,显著提升处理效率。文章还提供了bcftools安装指南和进阶统计技巧,帮助生物信息学分析人员快速完成SNP统计任务。

weixin_30555125的博客 494

SQL SERVER 统计各表占用空间情况

SELECT t.NAME AS TableName, s.Name AS SchemaName, p.rows AS RowCounts, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS 总共占用空间, SUM(a.used_pages) * 8 AS UsedSpaceKB,

Acettest's Blogs 1202

游戏大厂技术护城河:你以为他们靠“美术和买量”,其实背后全是硬家伙

先把效果堆满到快上线了才发现低端机跑不动然后疯狂砍特效、降分辨率,画面崩、口碑崩机型分档(低/中/高)每帧预算(CPU/GPU 各多少 ms)每种资源预算(贴图、网格、粒子数量)性能自动回归(每天跑性能测试,发现波动立刻报警)大白话:小厂像装修到入住前才发现电路不够,临时拉线;大厂从设计图开始就算承重、算电路、算水压。玩家会不会来?活动会不会爆?版本会不会翻车?外挂会不会泛滥?竞品会不会抄?流量不确定 → 可扩容架构版本不确定 → 灰度与回滚。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 104

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

Coding... 5499

轻型数据库SQLite结合PHP的开发

轻型数据库SQLite结合PHP的开发SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源

.NET博文收藏 549

基于 Qt C++ 的金融行情交易终端

由于完整的商业级源码非常庞大,我将为你提供一个 **结构完整、可直接编译运行的基础框架**,并详细说明各模块的实现思路和扩展方向。double波动 = quote.lastPrice * (rand()%200 - 100) / 10000.0;// 订单缓存(orderId -> Order)

寒寒豆豆软件公司的博客 190

压缩Sqlite数据文件大小,解决数据删除后占用空间不变的问题

最近有一网站使用Sqlite数据库作为数据临时性的缓存,对多片区进行划分Sqlite数据库文件,每天大概新增近1万的数据量,起初效率有明显的提高,但历经一个多月后数据库文件从几K也上升到了近160M,数据量也达到了40多万条,平均每一条数据占用了 4K的空间,虽然使用上的效率直观上没有造成太大的影响,但服务器的占用内存却比原来多占用了20%左右。今天刚好打算清除一个Sqlite的冗余数据,将保留最

Sam Lin's Space 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

sqlite3 内存占用不断增加的问题

文章目录1 背景2 问题3 排查4 问题原因5 解决方法 1 背景 嵌入式项目,故选用轻量级数据库 sqlite3; 通过 sqlite3 存储日志,日志数量较多,数据库文件大于500M; 嵌入式系统内存400M左右。 2 问题 在集成过程中出现如下问题: 通过 sqlite3_exec 函数不断往数据库中插入日志,内存占用不断增加; 通过 select count(*) from table_name获取日志的条数,内存迅速增大,增加的内存约等于数据库文件的大小。 开始一直以为是内存泄露了,不断排

有理论,有实验,有结论,可为一篇文章 8696

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

sqlite,mysql删除大量数据后,db文件占用空间不变的原因

sqlite删除数据后,占用空间不变的原因 当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。Sqlite.org的FAQ中提到过这个问题 mysql也有这种问题,但是原因不一样,这个具体参考这位大佬的文章。 https://blog.youkuaiyun.com/qq_35190492/article/details/109735448?ops_request_misc=%257B%2522request%255

amxld的博客 514

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

sqlite文件被占用,如何解决

,发现文件竟然被占用了,已经关闭了数据库连接也无效,后来从网上看到需要清除连接池

分享智能财税相关技术探索 7008

Linux下SQLite数据库空间管理 查看表占用空间+清理优化

SQLite数据库以文件形式存储,使用过程中会出现两个常见空间问题:一是随着数据累积,数据库文件越来越大,占用过多磁盘空间;二是删除数据后,数据库文件大小不会自动缩小,形成“空洞”,浪费存储空间。此外,当数据库文件过大时,查询、写入性能会下降,甚至增加损坏风险。本文将教你在Linux下,无需安装额外工具,直接通过SQLite命令行,查看哪些表占用空间最大、如何安全清理空间、优化数据库性能,适用于所有SQLite版本,兼顾实用性和易用性。

无依的个人博客 509

Access、SQLite,我该如何选择?

SQLite和Access,二者都是常用的轻型关系型数据库系统。在DB-Engines的数据库排名中,二者排名都比较靠前,名次也很接近,说明使用两种数据库的人群还都不少,很多朋友在二者之间难以选择。 SQLite:我虽渺小却锋利顽强! SQLite,是一款轻型的,遵守ACID的关系型数据库管理系统,她包含在一个相对小的C库中。主要为嵌入式应用设计,在很多嵌入式产品中应用广泛,她占用资源非常的低,只需要几百K的内存就够了。 笔者早年用过很多年Access,主要用作本地数据存储,对Access的品性和

木牛的博客 1万+

Sqlite轻型数据库初级理解

SQLite简介:Android四种数据存储方式的一种,SQLite是用c语言编写的开源嵌入式数据库引擎,它支持大多数sqlL92标准(可以简单的理解为支持大部分的sql语句),并且可以在所有主要的操作系统中运行。SQLite是一个轻型数据库引擎,但是它可以存储高达2T的数据,每一个数据库是以单个文件的形式进行存在,数据以B-Three的数据结构进行存储在磁盘(data/data/包名/项目名)。

qq_29781195的博客 1527

c#操作轻型数据库SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两

ghevinn欢迎您光临 1869

sqlite删除数据清空释放磁盘空间

sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空间,这就导致删除数据乃至清空整个数据库后,数据文件大小还是没有任何变化,还是很大     解决办法:   sqlite3中执行vacuum命令即可。

Damon谭雨杨的专栏 1万+

SQLite---强大的轻型数据库

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL

Kiven's blog 2286
上一篇: Happens-Before原则
下一篇: windows修改了my.ini后无法启动mysql
H阿布
博客等级 码龄12年 24粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值