Cześć wszystkim,
od niedawna migruję swój Home Assistant ze SQLite na MariaDB (na HP T630 + Proxmox + HAOS VM) i zauważyłem coś, co mnie trochę zaniepokoiło.
Po przeniesieniu bazy do MariaDB sprawdziłem tabele i zobaczyłem, że tabela “states” ma ponad 1 300 000 rekordów, a część encji ma dziesiątki lub setki tysięcy wpisów.
Nie jestem specjalistą od baz danych, więc chciałbym zapytać bardziej doświadczonych użytkowników — czy to wygląda normalnie, czy może coś jest nie tak z moją konfiguracją lub jakąś encją?
Załączam screeny:
- Widok główny bazy – tabela “states” jest największa, około 360 MB
- Zawartość tabeli states – pierwsze rekordy mają
entity_id = NULL, a polestatenp."off"
- Wynik zapytania SQL pokazujący encje z największą liczbą rekordów:
SELECT states_meta.entity_id, count(*) cnt
FROM states
LEFT JOIN states_meta
ON (states.metadata_id = states_meta.metadata_id)
GROUP BY states_meta.entity_id
ORDER BY cnt DESC;
SELECT states_meta.entity_id, count(*) cnt
FROM states
LEFT JOIN states_meta
ON (states.metadata_id = states_meta.metadata_id)
GROUP BY states_meta.entity_id
ORDER BY cnt DESC;
Wygląda to tak, jakby niektóre czujniki (głównie energii i mocy z Sonoffów/PZEM) generowały po kilkadziesiąt tysięcy stanów.
Przykładowe encje z największą liczbą wpisów:
- sensor.niepomiarowane_zuzycie_moc – 245 tys.
- sensor.pzem_dzienna_energia – 80 tys.
- sensor.lodowka_energy_current – 47 tys.
- sensor.sonoff_basic_r2_humidity – 36 tys.
- wiele sensorów PZEM-004T i Sonoff R2 odłączanych czasowo
Zastanawia mnie też to, że w tabeli “states” bardzo duża część rekordów ma entity_id = NULL, co znalazłem w tym wątku na anglojęzycznym forum:
https://community.home-assistant.io/t/all-entity-id-null/555488
Wygląda podobnie jak u mnie, ale nie wiem, czy to normalne, czy błąd, nie znam za dobrze angielskiego ![]()
Moje pytania:
- Czy ponad 1.3 mln rekordów w tabeli states i taki przyrost danych to normalne w MariaDB?
- Skąd mogą się brać rekordy z entity_id = NULL?
- Czy to jakiś błąd HA lub migracji z SQLite → MariaDB?
- Jakie zapytania SQL mogę wykonać, żeby zidentyfikować problematyczne encje lub błędne wpisy?
- Czy powinienem zmienić ustawienia recorder (np. wykluczenia lub
commit_interval)? - Czy encje energii z Sonoffów i PZEM-004T powinny być wyłączone z przechowywania?
- Czy mogłem coś źle skonfigurować w MariaDB?
Jeśli ktoś spotkał się z podobnym problemem albo wie, jak podejść do diagnostyki — będę wdzięczny za wskazówki.
Pozdrawiam, Tomek.





