diff --git a/CHANGELOG.md b/CHANGELOG.md
index fdec854be6898ba1184bffbe0e8ed9fdeeab4705..df400b91513135a0d5a861039e0746e7d8b847ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,11 @@
 This file logs the changes that are actually interesting to users (new features,
 changed functionality, fixed bugs).
 
+## Version 2.0.5 (in development)
+
+- Vacuum SQLite database at startup.
+
+
 ## Version 2.0.4 (released 201-05-09)
 
 - Fixed bug in writing ~/.flamenco-worker.cfg
diff --git a/flamenco_worker/upstream_update_queue.py b/flamenco_worker/upstream_update_queue.py
index f9aac7945a0c1faf6379f5229eeeb0429dddb2bc..813d2eb5ae7327b961e948c8ea757bfa7504d8d6 100644
--- a/flamenco_worker/upstream_update_queue.py
+++ b/flamenco_worker/upstream_update_queue.py
@@ -38,6 +38,9 @@ class TaskUpdateQueue:
         # We don't need to create a primary key; we use the implicit 'rowid' column.
         self._db.execute('CREATE TABLE IF NOT EXISTS fworker_queue(url TEXT, payload BLOB)')
 
+        # Start with a more-or-less compact database.
+        self._db.execute('VACUUM')
+
     def _disconnect_db(self):
         self._log.info('Disconnecting from database %s', self.db_fname)
         self._db.close()