Размер файла базы данных sqlite увеличивается после сброса и повторного создания базы данных - PullRequest
2 голосов
/ 16 июля 2011

Я запускаю эти команды в базе данных sqlite

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

Размер файла newdata.db на 10% больше, чем data.db (для базы данных объемом 100 МБ с записями 400 КБ).Почему это так?

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 Ответ

2 голосов
/ 16 июля 2011

Я оставлю это здесь для справки ... добавив их обратно к data.txt перед созданием нового БД, добился цели.

PRAGMA page_size = 4096;
PRAGMA cache_size = 72500;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...