База данных Firebird продолжает расти - PullRequest
2 голосов
/ 12 января 2010

Это мне интересно - несмотря на почти бессмысленный заголовок. Я использовал Firebird очень давно, но до недавнего времени не замечал интересного поведения.

Я использую встроенный Firebird 1.5 и заметил, что если я заполнил базу данных полными каплями (скажем, на 10 Мб), размер базы данных увеличится. Затем я могу удалить все поля в базе данных, и размер файла БД останется в увеличенном размере. В настоящее время он находится на 20 МБ и полностью пуст.

Я знаю, что Firebird встроил это в свою архитектуру (для быстрой индексации, проблем со скоростью и т. Д.), Но я всегда думал, что это уменьшится до исходного значения по умолчанию ~ 2 МБ.

Есть ли у кого-нибудь какие-либо предложения по «дефляции» размера файла? Причина в том, что это космическая проблема. Если бы у меня было много места для работы, мне было бы все равно. Однако это не так, и мне нужно, чтобы все было как можно более оптимально

Спасибо!

1 Ответ

4 голосов
/ 12 января 2010

Единственный способ освободить неиспользуемое пространство в базе данных Firebird - сделать резервную копию, а затем немедленно восстановить эту резервную копию (Справка: FAQ по Firebird ).

Здесь - хорошее техническое объяснение, почему это так.

Обратите внимание, что Firebird будет повторно использовать неиспользуемое пространство - т.е. если вы добавите еще 10 МБ больших двоичных объектов, база данных не должна увеличиваться до 30 МБ.

...