Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Sqlite3中,如何使用真空获得更多空间_Sqlite - Fatal编程技术网

在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