Что значит вакуумировать базу данных?

Как ссылка эта ошибка Firefox, что делает акт вакуумирования базы данных? Поддерживается ли эта операция всеми современными программами баз данных или только определенными?

4 ответов


базы данных, использовать MVCC для изоляции транзакций друг от друга надо периодически сканировать таблицы для удаления устаревших копий строк. В MVCC при обновлении или удалении строки она не может быть немедленно переработана, поскольку могут быть активные транзакции, которые все еще могут видеть старую версию строки. Вместо проверки, если это так, что может быть довольно дорогостоящим, старые строки, как предполагается, остаются актуальными. Процесс восстановления пространства откладывается до таблица вакуумируется, что в зависимости от базы данных может быть инициировано автоматически или явно.


это конкретно относится к команде вакуума SQL lite. http://www.sqlite.org/lang_vacuum.html

Он удаляет пространство, оставшееся от инструкций DELETE.


'vacuumdb' находится в MySQL, sqlite и PostgreSQL. В Postgres vacuumdb определяет пространство, занятое удаленными строками, и каталогизирует его для дальнейшего использования. "вакуум полный" делает более всестороннее исследование и перемещает записи во вновь созданное пространство.


Это очень похоже на дефрагментацию файловой системы. Больше информации о pgsql docs.