
Home Assistant dilengkapi dengan SQLite, dan itu cukup baik selama seminggu. Kemudian grafik dashboard mulai tertinggal, panel riwayat butuh sepuluh detik untuk dibuka, dan basis data recorder tumbuh menjadi beberapa gigabyte karena sensor Zigbee menulis setiap 30 detik. Menukar backend recorder memperbaikinya. Kami menjalankan enam basis data terhadap instans yang sama (kira-kira 140 entitas, retensi 30 hari) untuk melihat mana yang benar-benar membuat rumah pintar terasa responsif lagi.
Ringkasan ini adalah untuk siapa saja yang instalasi Home Assistant-nya sudah berkembang melampaui basis data default. Docker atau bare-metal, kami mencakup trade-off yang dibawa setiap backend, apa yang putus selama migrasi, dan mana yang dipilih jika Anda juga ingin dashboard Grafana jangka panjang.
Yang harus dicari dalam backend Home Assistant recorder
Beberapa hal lebih penting daripada benchmark mentah:
- Latensi pada panel riwayat dan logbook setelah DB melampaui 5 GB
- Seberapa baik backend menangani pola penulisan Home Assistant (banyak penyisipan kecil, kueri besar sesekali)
- Apakah Anda dapat menanyakannya langsung dari Grafana atau Node-RED tanpa membebani recorder
- Kontrol retensi dan downsampling, karena menyimpan resolusi penuh selamanya adalah pemborosan
- Cerita backup, terutama jika Anda menjalankan semuanya di SSD yang ingin tetap hidup
- Jalur migrasi dari SQLite (apakah Anda dapat menyimpan riwayat?)
Perbandingan cepat
| Backend | Terbaik untuk | Lisensi | Model penyimpanan | Berjalan di |
|---|---|---|---|---|
| PostgreSQL | Sebagian besar instans | PostgreSQL | Row-store, ACID | Linux, Windows, macOS |
| MariaDB | Penggantian drop-in | GPL | Row-store, ACID | Linux, Windows, macOS |
| TimescaleDB | Riwayat sensor jangka panjang | Apache 2.0 / TSL | Hypertables di atas Postgres | Linux, Docker |
| InfluxDB 2.x | Dashboard, downsampling | MIT (core) | Time-series columnar | Linux, Windows, macOS |
| MySQL | Infrastruktur MySQL yang ada | GPL | Row-store, ACID | Linux, Windows, macOS |
| VictoriaMetrics | Metrik dalam skala besar | Apache 2.0 | Time-series columnar | Linux, Windows, macOS |
Backend
1. PostgreSQL, pengganti recorder terbaik secara keseluruhan
PostgreSQL adalah yang dipilih jika Anda tidak yakin. Home Assistant mendukungnya secara native, driver psycopg2 stabil, dan perencanaan kueri bertahan saat basis data tumbuh melampaui 10 GB. Panel riwayat yang butuh delapan detik di SQLite turun di bawah satu detik di kotak empat-inti sederhana setelah indeks hangat. Tambahkan kompresi TOAST pada tabel states dan events dan penggunaan disk tetap masuk akal.
Tempat ia jatuh pendek: Anda harus menjalankan dan mem-backup basis data yang sebenarnya. Itu berarti cron pg_dump, arsip WAL jika Anda peduli tentang pemulihan point-in-time, dan rencana untuk apa yang terjadi ketika disk penuh. Tidak ada yang eksotis, tetapi itu lebih banyak pekerjaan daripada satu file .db.
Harga: Gratis, open-source di bawah lisensi PostgreSQL. Tidak ada tier berbayar.
Platform: Linux, Windows, macOS, Docker, dan setiap NAS dengan paket Postgres.
Unduh: postgresql.org
Kesimpulan: Pilih PostgreSQL terlebih dahulu, dan hanya lihat tempat lain jika Anda memiliki alasan tertentu.
2. MariaDB, fork yang sebagian besar panduan masih asumsikan
MariaDB adalah backend yang default dokumentasi Home Assistant di contoh mereka, dan tetap menjadi pilihan solid untuk siapa saja yang sudah menjalankannya. Setup didokumentasikan hingga blok recorder: YAML yang tepat, dan ada add-on MariaDB di Home Assistant OS yang menangani instalasi untuk Anda. Kinerja berada di ballpark yang sama dengan Postgres untuk beban kerja recorder.
Tempat ia jatuh pendek: migrasi skema di bawah beban penulisan berat kadang-kadang mengunci tabel states cukup lama sehingga recorder mencatat peringatan backpressure. Tidak ada yang bencana, tetapi Anda melihatnya. Tooling berasa MySQL juga terasa lebih tua daripada ekosistem Postgres.
Harga: Gratis, open-source di bawah GPLv2.
Platform: Linux, Windows, macOS, Docker, add-on HAOS native.
Unduh: mariadb.org
Kesimpulan: Pilihan teraman jika Anda menginginkan jalur yang didukung, didokumentasikan dengan kejutan minimal.
3. TimescaleDB, Postgres diatur untuk riwayat sensor
TimescaleDB berjalan sebagai ekstensi PostgreSQL dan mengubah tabel time-series menjadi hypertable yang secara otomatis dipartisi berdasarkan waktu. Untuk rumah pintar yang mencatat ribuan perubahan status per hari, itu berarti Anda dapat menyimpan setahun data dan masih mendapatkan kueri sub-detik. Agregat berkelanjutan memungkinkan Anda menghitung sebelumnya rata-rata harian sehingga panel Grafana tidak memindai baris mentah.
Tempat ia jatuh pendek: Anda harus mengarahkan recorder Home Assistant melalui Postgres secara normal, kemudian mengubah tabel menjadi hypertable dengan perintah SQL manual. Tidak sulit, tetapi bukan kotak centang. Lisensi Timescale (TSL) pada beberapa fitur enterprise tidak sepenuhnya open source, meskipun edisi komunitas mencakup semua yang dibutuhkan recorder.
Harga: Edisi komunitas gratis; Timescale Cloud berbayar dimulai sekitar $30/bulan untuk instans yang dihosting.
Platform: Linux, Docker, Timescale Cloud. Tidak ada paket Windows atau macOS native, meskipun WSL bekerja.
Unduh: timescale.com
Kesimpulan: Cerita retensi jangka panjang terbaik dari enam, jika Anda nyaman menjalankan ekstensi di atas Postgres.
4. InfluxDB 2.x, dashboard lebih dari recorder
InfluxDB bukan benar-benar pengganti recorder, itu adalah pasangan klasik yang hidup di sebelah Home Assistant. Integrasi influxdb mengalirkan perubahan status ke InfluxDB secara paralel dengan backend SQL apa pun yang digunakan recorder, dan Grafana menarik dari Influx untuk dashboard yang cantik. Kueri Flux memungkinkan Anda untuk downsample tanpa cronjobs.
Tempat ia jatuh pendek: bahasa kueri Influx berubah antara 1.x, 2.x, dan 3.x, jadi setengah dari tutorial yang Anda temukan sudah ketinggalan zaman. Dan karena itu tidak menggantikan recorder, Anda menjalankan dua basis data bukan satu.
Harga: InfluxDB 2.x OSS open-source gratis; InfluxDB Cloud memiliki tier gratis dan harga pay-as-you-go di atasnya.
Platform: Linux, Windows, macOS, Docker, add-on HAOS.
Unduh: influxdata.com
Kesimpulan: Gunakan bersama recorder SQL ketika Anda menginginkan dashboard Grafana serius, bukan sebagai pengganti recorder.
5. MySQL, hanya jika Anda sudah menjalankannya
MySQL bekerja dengan Home Assistant, dan jika Anda sudah memiliki server MySQL yang berjalan untuk layanan lain, menambahkan basis data recorder ke dalamnya cukup mudah. Driver mysqlclient sudah dikenakan, dan recorder tidak mendesaknya dengan keras.
Tempat ia jatuh pendek: MariaDB adalah fork penggantian drop-in yang sebagian besar panduan Home Assistant targetkan langsung, jadi Anda berakhir menerjemahkan instruksi. Perizinan Oracle di sekitar MySQL Enterprise menambah kerutan jika Anda pernah menginginkan dukungan berbayar.
Harga: MySQL Community Edition gratis; tier Enterprise berbayar dimulai sekitar $2.000/tahun.
Platform: Linux, Windows, macOS, Docker.
Unduh: mysql.com
Kesimpulan: Pilih hanya jika Anda sudah memiliki instans MySQL yang ingin Anda gunakan kembali.
6. VictoriaMetrics, ketika recorder adalah bottleneck
VictoriaMetrics bersinar ketika Anda memiliki ratusan entitas dan recorder itu sendiri menjadi bagian yang lambat. Ini menelan melalui endpoint yang kompatibel dengan Prometheus, jadi integrasi prometheus Home Assistant memberinya makan langsung. Penyimpanan kira-kira 10x lebih kompak daripada InfluxDB untuk data yang sama.
Tempat ia jatuh pendek: itu hanya metrik. Anda tidak mendapatkan riwayat status dengan cara yang sama seperti recorder memberikannya kepada Anda, jadi panel riwayat built-in masih memerlukan backend SQL. Ini adalah suplemen, bukan pengganti.
Harga: Open-source gratis; VictoriaMetrics Enterprise untuk deployment besar memiliki harga kustom.
Platform: Linux, Windows, macOS, Docker.
Unduh: victoriametrics.com
Kesimpulan: Penyimpan metrik yang dipilih ketika ekspor Prometheus Anda menjadi besar dan Influx mulai terasa berat.
Cara memilih yang tepat
Jika Anda hanya menginginkan dashboard Anda terasa cepat: PostgreSQL, dan berhenti membaca di sini.
Jika Anda mengikuti panduan dengan cermat dan menginginkan jalur yang didokumentasikan: MariaDB.
Jika Anda berencana menyimpan bertahun-tahun riwayat sensor dan menanyakannya nanti: TimescaleDB di atas PostgreSQL.
Jika tujuan Anda benar-benar dashboard Grafana yang bagus dengan downsampling: simpan recorder di Postgres atau MariaDB, dan tambahkan InfluxDB untuk lapisan metrik.
Jika instalasi Home Assistant Anda benar-benar besar (500+ entitas, jutaan+ perubahan status per hari): pasangkan PostgreSQL sebagai recorder dengan VictoriaMetrics untuk metrik gaya Prometheus.
Lewati MySQL kecuali Anda sudah menjalankannya untuk sesuatu yang lain.
FAQ
Apakah PostgreSQL lebih cepat dari SQLite untuk Home Assistant?
Ya, setelah basis data Anda melampaui beberapa gigabyte. Pada instans kecil SQLite sebanding, tetapi panel riwayat dan logbook kami secara nyata lebih cepat di PostgreSQL seiring pertumbuhan data, karena perencanaan kueri dan pembacaan bersamaan scaling lebih baik.
Bisakah saya bermigrasi riwayat SQLite ke PostgreSQL tanpa kehilangan data?
Ya, menggunakan pgloader atau dump/restore manual, tetapi itu tidak rapi. Sebagian besar pengguna memulai segar dengan backend baru dan menerima hilangnya riwayat lama daripada berjuang dengan konversi skema.
Apakah Home Assistant mendukung InfluxDB sebagai pengganti recorder?
Tidak. InfluxDB bekerja bersama recorder melalui integrasi influxdb, mengalirkan perubahan status ke dalamnya secara paralel. Recorder itu sendiri masih memerlukan SQLite, PostgreSQL, MariaDB, atau MySQL.
Apa backend terbaik untuk riwayat Home Assistant jangka panjang?
TimescaleDB. Agregat berkelanjutan dan partisi berbasis waktu memungkinkan Anda menyimpan setahun atau lebih data dan masih mendapatkan kueri cepat. VictoriaMetrics dekat jika Anda hanya peduli tentang metrik numerik.
Apakah mengubah backend recorder akan merusak otomasi saya?
Tidak. Otomasi membaca dari mesin status Home Assistant, bukan basis data recorder. Menukar backend mempengaruhi riwayat, statistik, dan retensi jangka panjang, bukan status live.