2011-07-16 26 views
2

を再作成した後、私はnewdata.dbのファイルサイズが100MBのための(data.db 10%よりも大きいSQLiteのDBファイルサイズが大きくなるダンピング&DB

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

SQLiteのデータベースにこれらのコマンドを実行します400kエントリのデータベース)。どうしてこんなことに?

data.dbは、順次挿入&なし削除して作成されました。複雑ではありません。私はテーブルを作成中に次の2 PRAGMAを設定していましたが、ダンプファイルには表示されません(おそらく接続を介してのみ維持されます)。

PRAGMA page_size = 4096; 
PRAGMA cache_size = 72500; 

サンプル内容です。

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

私は参考のためにここにこれを残しておきます...新しいDBを作成する前に、data.txtにこれらのバックを追加するトリックをしました。

PRAGMA page_size = 4096; 
PRAGMA cache_size = 72500;