如何清理sqlite数据库?

How to vacuum sqlite database?

我想知道如何清理 sqlite 数据库。
我从命令提示符尝试了整个数据库的语法 MANUAL VACUUM 命令:

1
 $sqlite3 database_name"VACUUM;";

但它给出的错误是:

1
near"database_name": syntax error.

还有自动真空:

1
PRAGMA auto_vacuum = INCREMENTAL;

并为特定表尝试了它:

1
VACUUM table_name;

但没有结果。


您不必在语法中指定表名。只有 VACUUM 有效。

此外,它只会清理主数据库,而不是任何附加的数据库文件。

有关详细信息,请参阅 SQLite 文档。


给出这样的命令:

1
$sqlite3 database_name 'VACUUM;'

事实上,这也是从命令行执行其他查询的方法:

1
$sqlite3 database_name 'select * from tablename;'

您可以使用数据库的完整路径:

1
$sqlite3 /path/to/db/foo.db 'VACUUM;'

运行命令:

1
VACUUM;

如果您使用 DB Browser for Sqlite 或

从命令提示符打开 Sqlite:

1
2
cd C:\\your_folder
C:\\Users\\your_user\\AppData\\Local\\Android\\Sdk\\platform-tools\\sqlite3.exe  -line your_db_name.db

并运行

1
VACUUM;