From a386f1fc9e562a5980b737dfb2a7d13abb775da6 Mon Sep 17 00:00:00 2001 From: Nelson Chan <3271800+chakflying@users.noreply.github.com> Date: Thu, 29 Jun 2023 22:41:01 +0800 Subject: [PATCH] [Experiment] Use incremental vacuum to speed up delete? (#2800) * DB: Use incremental vacuum * Chore: Add log for delete monitor exec. time * WIP: Test synchronous NORMAL --- server/database.js | 4 ++-- server/server.js | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/database.js b/server/database.js index b3a497bc2..a8e486894 100644 --- a/server/database.js +++ b/server/database.js @@ -169,12 +169,12 @@ class Database { await R.exec("PRAGMA journal_mode = WAL"); } await R.exec("PRAGMA cache_size = -12000"); - await R.exec("PRAGMA auto_vacuum = FULL"); + await R.exec("PRAGMA auto_vacuum = INCREMENTAL"); // This ensures that an operating system crash or power failure will not corrupt the database. // FULL synchronous is very safe, but it is also slower. // Read more: https://sqlite.org/pragma.html#pragma_synchronous - await R.exec("PRAGMA synchronous = FULL"); + await R.exec("PRAGMA synchronous = NORMAL"); if (!noLog) { log.info("db", "SQLite config:"); diff --git a/server/server.js b/server/server.js index 870dc7525..b5a6de0b6 100644 --- a/server/server.js +++ b/server/server.js @@ -902,6 +902,8 @@ let needSetup = false; delete server.monitorList[monitorID]; } + const startTime = Date.now(); + await R.exec("DELETE FROM monitor WHERE id = ? AND user_id = ? ", [ monitorID, socket.userID, @@ -910,6 +912,10 @@ let needSetup = false; // Fix #2880 apicache.clear(); + const endTime = Date.now(); + + log.info("DB", `Delete Monitor completed in : ${endTime - startTime} ms`); + callback({ ok: true, msg: "Deleted Successfully.",