Plupart de champs vides dans une base de données

Résolu
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 15 juil. 2008 à 11:39
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 15 juil. 2008 à 14:20
Bonjour,

on dit souvent qu'il faut éviter de créer une colonne dans une table lorsque l'on sait que la plupart des lignes auront ce champ vide. Est-ce que quelqu'un saurait pourquoi ?

Là en l'occurence j'ai 3 champs (2 VARCHAR et 1 TEXT) que 95% des entrées laisseront vides, mais ça m'ennuie aussi de créer une table juste pour eux. Si vous pouviez me donner votre avis sur la meilleure chose à faire...

Merci !

2 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juil. 2008 à 14:05
Bonjour,

je pense que de nos jours la différence se fait minimale, c'est vrai que si tu fais une requête non ciblée sur la table tu te retrouveras avec 95% de vide sur trois entrée dans l'array qui en résultera, ce qui peut, éventuellement rallentire (un tout petit peux comme dit) une  boucle s'il y a vraiment beucoups d'entrées et beaucoups de vérifiaction.... la seule différence que ça fait en pratique c'est que ça augmente (aussi que très légèrement) la consommation de mémoire....

Mais bon honnêtement, tant que tu ne te retrouvé pas à effectuer des centaines de fois cette même opération en quelques secondes, les différences de performances ne justifient pas le travails qui est nécéssaire à proprement séparer (puis re-relier) les données pour ces trois champs....

Bref, à mon avis - de nos jours - un travail superflux, sans dans quelques rares cas....
J'éspère que ça réponds à ta question

Bonne journée!

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo
<hr size="2" width="10" />
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 juil. 2008 à 14:20
Ca répond bien oui merci beaucoup !
Effectivement dans ce cas une ligne en mémoire prend plus de ressources, c'est vrai... Je n'ai pas le temps de tester mais ça ne m'étonnerait pas que ça en consomme quand même moins qu'une jointure gauche ou pire, qu'une deuxième requête...
Et étant donné que j'ai un moteur de cache par fichiers de toute façon, non je n'aurai pas à faire cent fois la même requête en une seconde.
Merci encore !
0
Rejoignez-nous