auto_vacuum — Configure automatic vacuum settings
database.]auto_vacuum; PRAGMA [
auto_vacuum pragma gets or sets the auto-vacuum
mode. The mode can be any of the following:
|Auto-vacuum is disabled|
|Auto-vacuum is enabled and fully automatic|
|Auto-vacuum is enabled but must be manually activated|
The set mode can be either the name or the integer equivalent. The returned value will always be an integer.
By default, databases are created
with an auto-vacuum mode of
NONE. In this mode, when the contents of a
database page are deleted, the page is marked as free and added
to the free-page list. This is the only action that is taken,
meaning that a database file will never shrink in size unless it
is manually vacuumed using the
Auto-vacuum allows a database file
to shrink as data is removed from the database. In
FULL auto-vacuum mode, free
pages are automatically swapped with an active page at the end
of the database file. The file is then truncated to release the
unused space. In
FULL mode, a
database should never have pages on the free list.
The ability to move pages is key to the auto-vacuum system. In order to accomplish this, the database needs to maintain some extra data that allows a page to back-track references. In the event the page needs to be moved, references to the page can also be updated. Keeping all the reference data up to date consumes some storage ...