
Home Assistant 裝置一多就變慢?SQLite 同 PostgreSQL 應該點揀
先查 Recorder 負載同儲存,轉資料庫未必係第一步
Home Assistant 愈玩愈大,最易撞到嘅慢未必係撳掣冇反應,反而係打開 History、Logbook 或能源圖表時不停轉圈。XDA 作者話自己有超過 50 部裝置,相關頁面要等 5 至 10 秒;換成裝喺 NAS 嘅 PostgreSQL 後,歷史圖表縮短至一秒內載入。不過原文冇交代 CPU、儲存裝置、資料庫大小同完整測試方法,呢組結果只可以當成個人案例,唔宜直接套落每套安裝。
Recorder 點解會拖慢 History
Home Assistant 嘅 Recorder 會記低 entity 狀態變化同系統事件,History、Activity/Logbook、dashboard 圖表同長期統計都會讀呢批資料。能源監測器、功率插座同部分感應器更新得密,一部裝置又可以帶住多個 entity,所以裝置數量其實唔等於資料庫負載。50 部低頻燈掣,寫入量可能少過幾個每秒更新嘅功率感應器;單憑 50 部裝置就決定要唔要轉資料庫,參考價值唔高。
仲要分清楚邊度慢。Recorder 資料庫主要影響歷史查詢、圖表同記錄,普通自動化判斷同顯示即時狀態唔一定會因為轉 PostgreSQL 而明顯加快。如果連開燈、自動化或整個介面都窒,CPU、RAM、SD 卡、網上連線、整合錯誤同 dashboard 卡片仍然要逐樣查。單靠「換 database」四個字,醫唔到所有 Home Assistant 慢症。

圖片:Home Assistant
SQLite 仍然係官方建議方案
Home Assistant 官方現時支援 SQLite、MariaDB、MySQL 同 PostgreSQL 12 或以上版本,但預設兼建議方案仍然係 SQLite,亦特別指出新版已針對 SQLite 做咗唔少優化。對一般安裝嚟講,一個唔使另開 server、唔使處理帳戶權限同網絡依賴嘅資料庫,穩定同易救機都係優點。原文將 SQLite 寫成裝置一多就自然頂唔順,講得太一刀切。
先用低成本方法減少寫入
未開 PostgreSQL 前,可以先喺系統資訊睇 Recorder 預計容量,再檢查邊啲 entity 更新得特別密。官方預設 purge_keep_days 係 10 日,亦支援用 include、exclude 同 entity pattern 減少冇用途嘅記錄;commit_interval 預設係 5 秒,官方建議 SD 卡環境可考慮調高至 30 秒,減少磁碟 I/O。呢幾步通常易改、易還原,亦有機會直接處理資料庫過肥同 flash 損耗問題。
調整前要諗清楚用途:排除某個 entity 後,佢嘅 History 同 Logbook 資料就唔會繼續記低。能源、溫度或保安記錄可能真係有保存價值,訊號強度、last seen、uptime 呢類高頻但少用嘅數據就可以優先檢視。硬件方面,如果系統仍然跑喺老化 SD 卡,換去可靠 SSD 往往簡單過維護另一部資料庫 server,亦少一個網絡故障點。
PostgreSQL 適合邊類安裝
如果 Recorder 已經好大、同時有大量高頻 entity,或者本身已有長開 NAS、UPS、監察同備份,PostgreSQL 就有合理位置。佢擅長同時處理讀寫,資料庫放去另一部機亦可以搬走部分儲存負載;官方 pg_dump 可喺資料庫繼續俾人讀寫時建立一致備份。代價係你要照顧 PostgreSQL 更新、容量、權限、網絡、啟動次序同還原測試,NAS 一停,Recorder 亦會失去資料庫連線。
遷移前先接受可能冇舊 History
呢度係原文最易令人低估嘅風險。Home Assistant 官方明講,更換 Recorder 資料庫可能失去原有歷史,而且官方唔支援資料遷移。XDA 提到可以用 pgloader 搬 SQLite 資料,但呢條路要自行承擔 schema、索引同資料完整性風險。穩陣做法係先整一份完整 Home Assistant 備份,再將原本嘅 home-assistant_v2.db 另存到其他裝置;轉外置 PostgreSQL 後,亦要另外安排定時 dump,唔好假設一般系統備份已照顧外置資料庫。
對大部分用家,次序應該係先量度 Recorder 容量同高頻 entity,再收窄記錄範圍、檢查儲存健康,最後先考慮 PostgreSQL。已有 NAS 同資料庫維護習慣、又確定 History 查詢係樽頸嗰批人,轉換先較容易換到實際好處;其餘安裝繼續用 SQLite,完全唔代表套智能家居未夠進階。
參考來源
- XDA Developers — I replaced Home Assistant's built-in database with PostgreSQL, and my smart home finally feels snappy — original report
- Home Assistant Recorder 官方文件 — 核對 Recorder 用途、支援資料庫、SQLite 官方定位、保留日數、寫入間隔、篩選選項同遷移警告。
- Home Assistant 通用備份及還原文件 — 核對完整備份內容、Recorder 容量檢查方式、異機還原同備份保存建議。
- PostgreSQL 17:pg_dump 官方文件 — 核對 PostgreSQL 可喺資料庫仍有人讀寫時建立一致 dump 嘅能力同限制。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







