2011-07-16 59 views
2

後我SQLite數據庫源碼分貝文件大小增加傾&重新創建分貝

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

newdata.db的文件大小大於data.db大10%(對於100MB上運行這些命令數據庫有400k條目)。爲什麼?

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

在這裏我要離開這個參考...創建新的數據庫並獲得成功之前添加這些回data.txt

PRAGMA page_size = 4096; 
PRAGMA cache_size = 72500;