我在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;
答案 0 :(得分:2)
我将这里留待参考......在创建新数据库之前将这些添加回data.txt
就可以了。
PRAGMA page_size = 4096;
PRAGMA cache_size = 72500;