Enhance database performance: add cache size and temp store settings; refactor alert clearing statement

This commit is contained in:
MayaTheShy
2026-03-21 18:14:16 -04:00
parent 9f322003db
commit aed7d1f735

View File

@@ -16,6 +16,8 @@ const db = new Database(DB_PATH);
db.pragma('journal_mode = WAL');
db.pragma('synchronous = NORMAL');
db.pragma('foreign_keys = ON');
db.pragma('cache_size = -8000'); // 8MB cache
db.pragma('temp_store = MEMORY');
// ========== Schema ==========
@@ -112,6 +114,7 @@ const getState = db.prepare(`SELECT value FROM state WHERE key = ?`);
const getAllItems = db.prepare(`SELECT name, count, display_name as displayName FROM items ORDER BY count DESC`);
const getAllFurnaces = db.prepare(`SELECT * FROM furnaces`);
const getAllAlerts = db.prepare(`SELECT item, triggered, current, threshold FROM alerts WHERE triggered = 1`);
const clearAlertTriggered = db.prepare(`UPDATE alerts SET triggered = 0`);
const getItemHistory = db.prepare(`
SELECT count, recorded_at as recordedAt
@@ -165,7 +168,7 @@ const saveFurnacesBatch = db.transaction((furnaces, now) => {
const saveAlertsBatch = db.transaction((alerts, now) => {
// Clear old triggered status
db.prepare('UPDATE alerts SET triggered = 0').run();
clearAlertTriggered.run();
for (const alert of alerts) {
upsertAlert.run({
item: alert.item || '',