Bonjour
J'ai fait pas mal de recherches sur quelques questions que j'ai, et que je n'ai malheureusement pas complètement cernées. Je suis donc à la recherche soit de vot'bon coeur éducatif, soit de références (si possible gratuite et en fr) à lire pour tout bien saisir.
J'ai créé une base de test avec une table toute simple, vide
J'ai bien compris que tinyint tenait sur 1 octet et ne pouvait donc pas dépasser la valeur de 255 (non signé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE `test` ( `id` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
J'ai bien compris aussi que le nombre entre parenthèse (1) ne signifiait pas la limite (pour un INT du moins) mais pas tout à fait compris son utilité en dehors de l'utilisation de ZEROFILL (dont je n'ai pas bien tout pigé non plus, à part qu'il complétait les bits inusité de gauche par des 0)
J'ai bien compris que, pour résumer, on peut considérer avec les ordi que 8bits = 1 octet = 1byte
Ce que je ne comprends pas, c'est pourquoi lorsque ma table est vide je l'examine et vois Data Length : 0 bytes (logique pour le moment) mais que lorsque j'insère une ligne INSERT INTO test value (1), data Length passe à 7bytes (whoot ? ça veut dire que mon tinyint s'étale sur 7*8 bits au lieu de 1*8 ?)
Devant ma première incompréhension, je continue en redisegnant ma table et passant de tinyint à int, me disant que du coup ça devrait augmenter la lourdeur de la base. Que néni, dateLenght reste à 7bytes.
Je passe en bigInt : 9bytes
Autre incompréhension (en fait c'est +/- la meme en fait) : je croyais que définir un INT et lui attribuer une valeur de "un" allait tout de même réserver 4octets à chaque enregistrement (donc que la valeur de la ligne soit de 0,1 ou 4294967295)
Autre question aussi, je reviens sur le nombre entre parenthèse (length) pourquoi est il limité à 255 ? Pourquoi ne peut on pas faire un varchar (5000) par exemple ? Car ce nombre ne peut être stocké que par un octet, je suppose (mais je préfère demander, tant que je suis là )
Merci beaucoup pour votre lecture, et bon gros week end des familles !
Ps : j'ai déjà lu pas mal de truc, je ne pose pas ces questions à l'arrache sans avoir fouillé, se sont des incompréhensions qu'il me reste après recherche.
Partager