Is there any way to compact databases and return unused database pages to the filesystem?
In all Berkeley DB access methods, as database pages are emptied they are made available for other uses, that is, new pages will not be allocated from the underlying filesystem as long as there are unused pages available. Additionally, Btree databases may be compacted at run-time and pages returned to the filesystem by calling the DB->compact method. Finally, Queue access method extent files are removed when they are emptied, and their pages returned to the underlying filesystem.