找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 2|回覆: 0

    HA 資料庫越來越大、頁面越來越慢?先做這三件事

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    很多人用了半年之後會發現 HA 變慢,歷史頁面要轉好幾秒。
    八成是資料庫被塞爆了。



    ■ 第一步:找出誰在狂寫

    不要憑感覺猜。裝一個 SQLite Web 附加元件,執行這段 SQL:
    1. SELECT sm.entity_id, COUNT(*) AS c
    2. FROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id
    3. GROUP BY sm.entity_id ORDER BY c DESC LIMIT 20;
    複製代碼

    跑出來的前 20 名就是元凶。通常是電表、網路流量、CPU 溫度這種每幾秒就回報一次的東西。

    ■ 第二步:把它們排除掉

    configuration.yaml 加:
    1. recorder:
    2.   purge_keep_days: 30
    3.   exclude:
    4.     entity_globs:
    5.       - sensor.*_cpu_*
    6.       - sensor.*_uptime
    7.     entities:
    8.       - sensor.你要排除的實體
    複製代碼

    重啟 HA。注意:排除掉的東西就不會有歷史紀錄了,排除前想一下你會不會需要看。

    ■ 第三步:確認 repack 有在跑

    這點很多人不知道:光是 purge(刪除舊資料)檔案並不會變小
    一定要 repack(重整)才會真的釋放空間。

    HA 預設 auto_repack: true,每隔一個週日自動做一次。
    如果你有關掉,記得自己排一個自動化呼叫 recorder.purge

    磁碟快滿的時候不要 repack —— 它需要跟資料庫一樣大的暫存空間。

    ■ 那要不要換 MariaDB?

    2026 年的答案是:多數人不用。

    以前(2022 年左右)大家會建議換,因為當時 SQLite 處理大資料集很吃力。
    但現在 HA 對 SQLite 做了很多最佳化,長期統計也已經是資料庫結構的一部分。

    換 MariaDB 你要自己當 DBA:自己備份、自己顧密碼、自己處理版本相容。
    而且官方不支援歷史資料遷移,換過去舊資料基本上就沒了。

    先把上面三件事做好,九成的「資料庫太大」就解決了。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:15 , Processed in 0.076938 second(s), 24 queries .

    快速回覆 返回頂部 返回列表