Enhance database performance: add cache size and temp store settings; refactor alert clearing statement
This commit is contained in:
@@ -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 || '',
|
||||
|
||||
Reference in New Issue
Block a user