diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs
index 6cef402af0c18fde3231cf8c6778c6aaa52deb66..ae2735454fcd5a507e69663470a4b28aad7bb175 100644
--- a/src/core/config/mod.rs
+++ b/src/core/config/mod.rs
@@ -236,6 +236,8 @@ pub struct Config {
 	pub rocksdb_compaction_prio_idle: bool,
 	#[serde(default = "true_fn")]
 	pub rocksdb_compaction_ioprio_idle: bool,
+	#[serde(default = "true_fn")]
+	pub rocksdb_compaction: bool,
 
 	pub emergency_password: Option<String>,
 
@@ -712,6 +714,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
 			"RocksDB Compaction Idle IOPriority",
 			&self.rocksdb_compaction_ioprio_idle.to_string(),
 		);
+		line("RocksDB Compaction enabled", &self.rocksdb_compaction.to_string());
 		line("Media integrity checks on startup", &self.media_startup_check.to_string());
 		line("Media compatibility filesystem links", &self.media_compat_file_link.to_string());
 		line("Prevent Media Downloads From", {
diff --git a/src/database/opts.rs b/src/database/opts.rs
index d223645489a7a2825462ba38735da28a8ab5ab93..3c3ad4242b68bad365eec31260da0d0253befbd3 100644
--- a/src/database/opts.rs
+++ b/src/database/opts.rs
@@ -68,6 +68,7 @@ pub(crate) fn db_options(config: &Config, env: &mut Env, row_cache: &Cache, col_
 	set_compression_defaults(&mut opts, config);
 
 	// Misc
+	opts.set_disable_auto_compactions(!config.rocksdb_compaction);
 	opts.create_if_missing(true);
 
 	// Default: https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes#ktoleratecorruptedtailrecords