Comment savoir s'il faut normaliser une base SQLite qui grossit ?
#1
Je travaille sur un petit projet perso et j’ai une table SQLite avec quelques milliers de lignes de données de capteurs. Pour l’instant, les requêtes sont rapides, mais j’ai l’impression que ça pourrait se dégrader si je continue à ajouter des données. Je me demande si je devrais m’y prendre autrement dès maintenant, peut-être en réfléchissant à la normalisation de ma base. J’ai toujours fait un peu au feeling, et là je me dis que je suis peut-être en train de créer un problème pour plus tard sans m’en rendre compte.
Répondre
#2
Le mot clé ici est normalisation. Elle peut aider à éviter les redondances et à clarifier les dépendances entre capteurs et mesures, ce qui devient utile quand les données s’accumulent. En pratique SQLite tolère bien des structures simples et une modélisation en deux tables peut réduire les incohérences et faciliter les requêtes futures. Tu es prêt à tester ces idées sur un extrait et à regarder ce que ça change ?
Répondre
#3
Franchement, normalisation n’est pas une baguette magique et elle peut rallonger les joints quand on parle de petites bases. Si les requêtes restent rapides, peut-être que l’investissement n’est pas justifié tout de suite. Un index sur (timestamp, sensor_id) ou sur les colonnes les plus utilisées peut déjà apporter des gains sans changer le schéma. Tu as repéré des requêtes qui prennent plus de temps sur des périodes longues ?
Répondre
#4
J’ai envie d’écrire vite et de raisonner à voix basse: une structure plus raisonnée sonne bien, mais c’est aussi du travail pour s’y retrouver. Le concept de normalisation résonne avec l’idée d’un esprit organisé; j’imagine des tables propres et des contraintes qui évitent les surprises. Est-ce que tu as des plots de données qui te posent problème aujourd’hui ?
Répondre
#5
Je réfléchis à l’idée elle-même plutôt qu’à la solution prête: dans le domaine des séries temporelles, une dénormalisation légère et des index bien choisis peuvent parfois suffire. SQLite n’est pas une base orientée time-series, mais elle peut tenir le coup avec des jointures simples et des index efficaces. Tu crois que ce genre d’équilibre convient à ton cas ou qu’il faut viser une refonte plus ambitieuse ?
Répondre
#6
C’est peut-être une question de perspective: si le but est surtout la vitesse des filtres sur des plages de temps, la normalisation n’apportera pas tout de suite le maximum. L’enjeu serait plutôt de comprendre quelles requêtes coûtent le plus et pourquoi, et d’évaluer des modifications ciblées plutôt qu’un changement total de modèle. Tu serais prêt à mesurer l’impact sur quelques scénarios concrets ?
Répondre
#7
Pour avancer sans tout chambouler, on peut tester des hypothèses et voir ce qui change vraiment: tester un index composite, comparer avec et sans dénormalisation légère, et observer les impacts sur les temps et le stockage. SQLite offre WAL pour l’écriture concurrente et VACUUM pour nettoyer, mais le plus important reste d’aligner le schéma sur ce que tu interroges le plus souvent. Tu as une idée précise des requêtes qui te posent question aujourd’hui ?
Répondre


[-]
Réponse rapide
Message
Saisissez votre réponse à ce message ici.

Code de confirmation
Veuillez saisir le texte figurant dans l’image ci-dessous. Ce procédé permet de bloquer les robots.
Code de confirmation
(insensible à la casse)

Aller au forum