SQLite Vacuum 学习笔记
简介
SQLite是一个流行的嵌入式关系型数据库,它可以在各种平台上运行。缩小SQLite数据库(即减小SQLite数据库文件的大小)是一个常见的需求,这可以通过执行sqlite3_vacuum操作来实现。
SQLite Vacuum 操作的基本语法
SQLite Vacuum操作的基本语法如下所示:
Copy CodeVACUUM;
此命令将从当前连接的数据库中删除所有未使用的数据,并将使用的数据重新组织以最大限度地减少文件的大小。
SQLite Vacuum 操作的实例
以下示例演示如何在SQLite中使用vacuum操作:
- 首先,我们将创建一个名为test.db的数据库:
sqlCopy Codesqlite3 test.db
CREATE TABLE example_table (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL
);
INSERT INTO example_table (id, name, age)
VALUES (1, 'Alice', 25);
INSERT INTO example_table (id, name, age)
VALUES (2, 'Bob', 30);
- 接下来,我们将执行一些更新query,然后查看文件大小:
sqlCopy CodeUPDATE example_table SET age=26 WHERE id=1;
UPDATE example_table SET age=31 WHERE id=2;
SELECT * FROM example_table;
SELECT page_count * page_size / 1024.0 / 1024.0 AS size_mb FROM pragma_page_count(), pragma_page_size();
- 输出结果如下:
sqlCopy Code1|Alice|26
2|Bob|31
size_mb
----------
1.0
- 现在,我们将执行Vacuum操作并再次查看文件大小:
sqlCopy CodeVACUUM;
SELECT page_count * page_size / 1024.0 / 1024.0 AS size_mb FROM pragma_page_count(), pragma_page_size();
- 输出结果如下:
sqlCopy Codesize_mb
----------
0.5
总结
通过执行vacuum操作,我们成功地从当前连接的SQLite数据库中删除了所有未使用的数据,并重新组织了使用的数据以最大限度地减少文件的大小,从而使数据库文件变小。