SQLite Vacuum

VACUUM 命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理数据库文件结构。

如果表中没有明确的整型主键(INTEGER PRIMARY KEY),VACUUM 命令可能会改变表中条目的行 ID(ROWID)。VACUUM 命令只适用于主数据库,附加的数据库文件是不可能使用 VACUUM 命令。

如果有一个活动的事务,VACUUM 命令就会失败。VACUUM 命令是一个用于内存数据库的任何操作。由于 VACUUM 命令从头开始重新创建数据库文件,所以 VACUUM 也可以用于修改许多数据库特定的配置参数。

手动 VACUUM

下面是在命令提示符中对整个数据库发出 VACUUM 命令的语法:

$sqlite3 database_name "VACUUM;"

您也可以在 SQLite 提示符中运行 VACUUM,如下所示:

sqlite> VACUUM;

您也可以在特定的表上运行 VACUUM,如下所示:

sqlite> VACUUM table_name;

自动 VACUUM(Auto-VACUUM)

SQLite 的 Auto-VACUUM 与 VACUUM 不大一样,它只是把空闲页移到数据库末尾,从而减小数据库大小。通过这样做,它可以明显地把数据库碎片化,而 VACUUM 则是反碎片化。所以 Auto-VACUUM 只会让数据库更小。

在 SQLite 提示符中,您可以通过下面的编译运行,启用/禁用 SQLite 的 Auto-VACUUM:

sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum

sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 1 means enable incremental vacuum

sqlite> PRAGMA auto_vacuum = FULL; -- 2 means enable full auto vacuum

您可以从命令提示符中运行下面的命令来检查 auto-vacuum 设置:

$sqlite3 database_name "PRAGMA auto_vacuum;"

vacuum 数据库 用法_SQLite Vacuum相关推荐

  1. vacuum 数据库 用法_postgresql vacuum操作

    来源 :https://blog.csdn.net/u011598529/article/details/49276029 PostgreSQL数据库管理工作中,定期vacuum是一个重要的工作. v ...

  2. vacuum 数据库 用法_PostgreSQL vacuum原理一功能与参数

    从上篇"PostgreSQL MVCC 源码实现"中,我们知道,PG并没有像Oracle那样的undo来存放旧版本:而是将旧版本直接存放于relation文件中.那么带来的问题就是 ...

  3. vacuum 数据库 用法_[数据库学习]第二章SQL命令参考-VACUUM

    VACUUM Garbage-collectsand optionally analyzes a database. 概要 VACUUM[FULL] [FREEZE] [VERBOSE] [table ...

  4. Oracle数据库用法汇总

    一些Oracle数据库用法的小总结 1.使用insert into创建新表 insert into destdb.sub_contract (userid,contractid) select msi ...

  5. 使用php连接mysql数据库_PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 /** * @Author: HTL * @Description: ...

  6. android SQLite数据库用法图文详解(附源码)

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 SQLite是嵌入式设备使用的一种轻量型数据库.可以通过执行sql语句对数据库进行操作,android ...

  7. java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解

    sqlite数据库的介绍与java操作sqlite的实例讲解 发布时间:2020-10-03 05:40:34 来源:脚本之家 阅读:92 作者:Lee_Tech sqlite是啥? 1.一种轻型数据 ...

  8. mysql免安装数据库用法_MySQL数据库之mysql免安装制作使用说明

    本文主要向大家介绍了MySQL数据库之mysql免安装制作使用说明 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1>把压缩文件mysql-noinstall-5.1.6 ...

  9. go分析和kegg分析_GO 和 KEGG 的区别 | GO KEGG数据库用法 | 基因集功能注释 | 代谢通路富集...

    一直都搞不清楚这两者的具体区别. 其实初学者搞不清楚很正常,因为它们的本质是相通的,都是对基因进行归类注释的数据库. 建议初学者自己使用一下这两个数据库,应该很快就能明白其中的区别. 以下以一个案例来 ...

最新文章

  1. 算法-- 找到所有数组中消失的数字(Java)
  2. php 缺少参数,php - 如何验证JSON响应中是否缺少参数-Laravel 6 - 堆栈内存溢出
  3. Android启动过程以及各个镜像的关系
  4. python字符串补空格输出_python格式化打印字符串
  5. pmp每日三题(2022年3月14日)
  6. Codeforces Round #523 (Div. 2)
  7. IPv6-IPv4过渡技术详解及配置实例
  8. 我们去庐山玩啦,公司组织,带上老婆
  9. 单片机通过改变占空比改变电机转速c语言,直流电动机的调速 用单片机产生PWM控制...
  10. html选择日期的组件,怎样实现一个datePicker(日期选择)组件
  11. 腾讯QQ2019最新版 v9.1.0(24712) 免安装绿色版 显IP去广告完整版
  12. 马化腾:我和太太也是QQ认识的
  13. backtrader股票技术指标自定义与量化回测
  14. 短视频游戏主播如何变现,教你快速找到属于自己的赚钱方式丨国仁网络
  15. 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯
  16. spring boot 使用redis作为cache 出现:A cannot be cast to A.使用fastJson序列化
  17. 苹果官网对xcode版本的要求
  18. 2022湖南科技大学 新生快乐赛 题解
  19. JZ2440系统时钟和定时器
  20. Move-it无人驾驶黑客马拉松记录

热门文章

  1. 【Prism系列】Prism子窗口实现
  2. 摩拜服务器维护,摩拜单车云服务器
  3. WebRTC系列 -- iOS ADM音频数据流处理流程及源码阅读记录
  4. CNS、ENS和PNS的发育过程
  5. 李现成为PADI全球青年海洋大使
  6. 应用编程课程4.系统IO和标准IO的比较,自己做的一些理解,仅仅方便自己看
  7. linux指令(一、目录与档案)
  8. 推荐6款地球表面最强软件的电脑软件
  9. 效能评估理论、方法及应用-效能评估系统软件方法有哪些
  10. 2018东北四省赛 Spin A Web 曼哈顿距离最小生成树