Ma question est plus par curiosité (et un peu d’inquiétude) qu’autre chose car tout mon systeme HA fonctionne parfaitement.
Par contre, la base est immense 9Gb, j’ai mis en place une sélection recorder: mais cela ne change rien.
J’ai lu mille témoignages sur les soucis de base de données, mais tout le monde arrive a identifier les entity_id les plus utilisés.
Quand j’execute la commande suivante dans SQLite, je n’ai aucune entity_id qui remonte :
SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 20;
J’ai finalement pris le parti de renommer le fichier de la base et relancer, un nouveau s’est créé.
Mais, pareil, je n’ai rien dans entity_id :
J’étais comme toi avec une base > 10Go suite au test sur le Rfxcom et Rfplayer.
Du coup maintenant je purge avec recorder tout les 8 jours ! ce la depend maintenant < 3 Go
Sinon recorder en 4 jours => 1 Go
OK, donc j’ai compris, ils ont ajouté une table qui fait le lien entre states et states_meta
entity_id de states est devenu vide et c’est metadata_id qui est utilisé
Je vais réviser mes anciennes connaissances SQL pour retrouver la bonne requète qui va remplacer
SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 20;
SELECT states_meta.entity_id, COUNT(*) AS count
FROM states
JOIN states_meta ON states.metadata_id = states_meta.metadata_id
GROUP BY states_meta.entity_id
ORDER BY count DESC
LIMIT 20;
Si vous connaissez les majors de HA, proposez leur de mettre à jour cette page :
Suite à une augmentation soudaine de ma base de donnée (25 giga!), j’ai cherché à trouver le coupable en exécutant la requête donner par Sigalou :
SELECT states_meta.entity_id, COUNT(*) AS count
FROM states
JOIN states_meta ON states.metadata_id = states_meta.metadata_id
GROUP BY states_meta.entity_id
ORDER BY count DESC
LIMIT 20;
Sauf que rien ne se passe, rien ne s’affiche.
Peux être faut il patienter longtemps vu la taille de la base de données ? HA tourne sur une machine virtuelle sur un Synology DS220+.
SELECT states_meta.entity_id, states.metadata_id, COUNT(*) AS cnt FROM states LEFT JOIN states_meta ON states.metadata_id=states_meta.metadata_id GROUP BY states.metadata_id ORDER BY COUNT(*) DESC;
Tu dois certainement avoir ajouter des entités récemment, ou alors ça fait un moment que ça grossi tranquillement