小白教程
所有教程
关于
Search
172.70.131.29
172.70.131.29
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“SQLite Vacuum”的源代码
本页内容
上一节:
SQLite_Explain
下一节:
SQLite_日期_&_时间
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:SQLite Vacuum}}[[Category:SQLite 教程|44]] = SQLite Vacuum = VACUUM 命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理数据库文件结构。 如果表中没有明确的整型主键(INTEGER PRIMARY KEY),VACUUM 命令可能会改变表中条目的行 ID(ROWID)。VACUUM 命令只适用于主数据库,附加的数据库文件是不可能使用 VACUUM 命令。 如果有一个活动的事务,VACUUM 命令就会失败。VACUUM 命令是一个用于内存数据库的任何操作。由于 VACUUM 命令从头开始重新创建数据库文件,所以 VACUUM 也可以用于修改许多数据库特定的配置参数。 == 手动 VACUUM == 下面是在命令提示符中对整个数据库发出 VACUUM 命令的语法: <pre class="prettyprint"> $sqlite3 database_name "VACUUM;" </pre> 您也可以在 SQLite 提示符中运行 VACUUM,如下所示: <pre class="prettyprint"> sqlite> VACUUM; </pre> 您也可以在特定的表上运行 VACUUM,如下所示: <pre class="prettyprint"> sqlite> VACUUM table_name; </pre> == 自动 VACUUM(Auto-VACUUM) == SQLite 的 Auto-VACUUM 与 VACUUM 不大一样,它只是把空闲页移到数据库末尾,从而减小数据库大小。通过这样做,它可以明显地把数据库碎片化,而 VACUUM 则是反碎片化。所以 Auto-VACUUM 只会让数据库更小。 在 SQLite 提示符中,您可以通过下面的编译运行,启用/禁用 SQLite 的 Auto-VACUUM: <pre class="prettyprint"> 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 </pre> 您可以从命令提示符中运行下面的命令来检查 auto-vacuum 设置: <pre class="prettyprint"> $sqlite3 database_name "PRAGMA auto_vacuum;" </pre>
返回至“
SQLite Vacuum
”。
上一节:
SQLite_Explain
下一节:
SQLite_日期_&_时间