在Sqlite3中,如何使用真空获得更多空间
我有一个一直在删除记录和添加记录的数据库。在Sqlite3中,如何使用真空获得更多空间,sqlite,Sqlite,我有一个一直在删除记录和添加记录的数据库。 我只有2M字节的内存可用于此数据库。我知道我应该使用真空吸尘器,但它不起作用。有什么我遗漏的吗?你怎么知道它没用? 要验证数据库的大小,请执行以下操作: $sqlite3 test.db //open the database $sqlite> PRAGMA page_size; // request database's page size configure. 1024
我只有2M字节的内存可用于此数据库。我知道我应该使用真空吸尘器,但它不起作用。有什么我遗漏的吗?你怎么知道它没用? 要验证数据库的大小,请执行以下操作:
$sqlite3 test.db //open the database
$sqlite> PRAGMA page_size; // request database's page size configure.
1024 // test.db has page size 1024 bytes.
$sqlite> PRAGMA page_count; // request database's page count.
677 // test.db has 677 pages.
test.db的大小为677*677=693248字节
要发布“真空”,不要添加“PRAGMA”,这是常见的错误,只需单独发送“真空”:
现在数据库大小是:1024*674=690176字节SQLite自动重用释放的页面。真空过程创建数据库文件的副本。答案似乎是“不要”。
$sqlite> VACUUM; //re-arrange database
$sqlite> PRAGMA page_count; //check the new page count
674 //after clean up, the page count is reduced