MagicBuzz a écrit :
1/ le place perdue doit être de l'ordre de 1%
2/ deplus, en SGBD, on parle en PAGES et non en OCTETS. Ainsi, c'est pas parceque tu gagnes 10 octets par ligne que tu gagneras forcément en espace mémoire (c'est plus facile de traîter des blocs de 256 octets par exemple que tantôt 100 octets, tantôt 400 octets quand on a des champs de taille variable)
3/ niveau performances pures et dûr, entre INT et TINYINT, même combat : c'est de toute façon un registre 32 bits (voir 64) qui va le traîter.
4/ Il ne fait jamais utiliser ni INT ni TINYINT, mais NUMBER, qui certes est bien plus gros, mais garanti l'impossibilité de dépasser la valeur maximale (à moins d'énumérer les atomes constituant le système solaire)
Enfin, pour terminer :
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
=> C'est pas à toi de te soucier des performances liées à la représentation interne des données de ta base : toi tu te contentes de stocker les informations dont tu as besoin, d'une façon à la fois la plus simple et la plus évolutive possible. Si ensuite tu as de réels problèmes de performances, tu as toujours la possibilité de faire venir un DBA qui saura améliorer les performances de l'orde de 1 pour 10 sans toucher aux types utilisés, ou simplement changer le matos du serveur. Si tu veux vraiment avoir des perfs optimales, tu bosses à l'ancienne dans un fichier plat binaire. Un SGBD c'est là pour gérer tes données, donc laisse-le faire, il fera toujours mieux que toi.
|