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('journal_mode = WAL');
|
||||||
db.pragma('synchronous = NORMAL');
|
db.pragma('synchronous = NORMAL');
|
||||||
db.pragma('foreign_keys = ON');
|
db.pragma('foreign_keys = ON');
|
||||||
|
db.pragma('cache_size = -8000'); // 8MB cache
|
||||||
|
db.pragma('temp_store = MEMORY');
|
||||||
|
|
||||||
// ========== Schema ==========
|
// ========== 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 getAllItems = db.prepare(`SELECT name, count, display_name as displayName FROM items ORDER BY count DESC`);
|
||||||
const getAllFurnaces = db.prepare(`SELECT * FROM furnaces`);
|
const getAllFurnaces = db.prepare(`SELECT * FROM furnaces`);
|
||||||
const getAllAlerts = db.prepare(`SELECT item, triggered, current, threshold FROM alerts WHERE triggered = 1`);
|
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(`
|
const getItemHistory = db.prepare(`
|
||||||
SELECT count, recorded_at as recordedAt
|
SELECT count, recorded_at as recordedAt
|
||||||
@@ -165,7 +168,7 @@ const saveFurnacesBatch = db.transaction((furnaces, now) => {
|
|||||||
|
|
||||||
const saveAlertsBatch = db.transaction((alerts, now) => {
|
const saveAlertsBatch = db.transaction((alerts, now) => {
|
||||||
// Clear old triggered status
|
// Clear old triggered status
|
||||||
db.prepare('UPDATE alerts SET triggered = 0').run();
|
clearAlertTriggered.run();
|
||||||
for (const alert of alerts) {
|
for (const alert of alerts) {
|
||||||
upsertAlert.run({
|
upsertAlert.run({
|
||||||
item: alert.item || '',
|
item: alert.item || '',
|
||||||
|
|||||||
Reference in New Issue
Block a user