转储后,sqlite db文件大小增加重新创建数据库

时间:2011-07-16 13:43:38

标签: sqlite

我在sqlite数据库上运行这些命令

sqlite3 data.db .dump > data.txt
cat data.txt | sqlite3 newdata.db

newdata.db的文件大小比data.db大10%(对于具有400k条目的100MB数据库)。为什么会这样?

data.db是使用顺序插入&创建的。没有删除。没什么复杂的。我在创建表时设置了以下2个PRAGMA,但是转储文件没有显示它们(可能它们仅在连接时保持不变)。

PRAGMA page_size = 4096;
PRAGMA cache_size = 72500;

data.txt的示例内容。

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE urltable (url TEXT NOT NULL, PRIMARY KEY url);
INSERT INTO "urltable" VALUES('http://www.example.com/page1.html');
...
COMMIT;

1 个答案:

答案 0 :(得分:2)

我将这里留待参考......在创建新数据库之前将这些添加回data.txt就可以了。

PRAGMA page_size = 4096;
PRAGMA cache_size = 72500;