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