Optimisation sql - PHP - Programmation
Marsh Posté le 01-11-2005 à 17:22:58
Le chiffre qui est entre parenthèses indique, non pas le nombre d'octets, mais le nombre de chiffres maximal. Par exemple tinyint(1) permet de stocker les nombres de 0 à 9 (peut-être aussi -9 à -1, cela dépend si le Tinyint est signé ou pas, car sur certaines bases de données on peut avoir des tinyint signés ou non signés), tinyint(2) permet de stocker les nombres de 0 à 99, etc. Il n'est pas obligatoire d'indiquer le nombre maximal de chiffres, déclarer tinyint sans parenthèses suffit généralement. Le nombre entre parenthèses est plutôt utile pour les number, decimal, et autres champs numériques dont la taille physique peut varier en fonction du nombre de chiffre maximal déclaré.
Marsh Posté le 01-11-2005 à 18:30:42
fabs2b a écrit : |
La majorité des sgbd ont un type boolean qui est tout à fait de circonstance dans ton cas.
Marsh Posté le 01-11-2005 à 20:21:42
Merci.
J'ai vu que le type boolean est un alias de tinyint(1), je comprend mieux pourquoi ;-)
Marsh Posté le 03-11-2005 à 12:56:26
Il me semble avoir lu dans la doc de mysql qu'avec mysql, le nombre entre parentaise correspond au nombre de chiffre affiché dans la colone. Et non pas à l'intervale des valeurs stockable dans la colone.
J'ai retrouvé la page en question :
http://www.nexen.net/docs/mysql/an [...] en=tinyint
Citation : En extension de la norme ANSI/ISO SQL92, MySQL supporte aussi les types entiers TINYINT , MEDIUMINT , et BIGINT , comme présenté ci-dessus. Un autre extension supportée par MySQL permet de spécifier optionnellement la taille d'affichage, sous la forme d'une valeur entière entre parenthèses, juste après le mot clé spécifiant le type (par exemple, INT(4)). Cette spécification de taille est utilisée pour remplir à gauche, avec le caractère de remplissage par défaut, les nombres dont la taille est inférieure à celle spécifiée mais uniquement à l'affichage : cela ne réduit pas l'intervalle de validité des valeurs qui peuvent être stockées dans la colonne. |
Marsh Posté le 03-11-2005 à 14:08:08
Donc si je comprend bien si on fait tinyint(4),
on peut stocker de -127 a 128
et si on entre la valeur "6" elle sera ecrite : 0006
Marsh Posté le 03-11-2005 à 14:42:44
J'aurais dit qu'en théorie c'est bien ça. Mais en testant avec le mysql 5 qu'on a ici, ca a pas l'air d'avoir le moindre effet. C'est peut être plus géré dans mysql5.
Marsh Posté le 03-11-2005 à 14:51:46
J'aimerais bien savoir ce que fout cette question dans la cat' php, quand même...
Marsh Posté le 03-11-2005 à 14:57:27
php, mysql, apache, recherche de script, aide à l'installation ...
J'en ai vu tellement ici que les probléme de mysql ca me dérange plus trop.
PS : Tiens, ce coup ci, j'ai oublier de le dire qu'il faut changer de sections.
Marsh Posté le 03-11-2005 à 14:58:15
Ca manque de modos consciencieux, par ici.
Marsh Posté le 03-11-2005 à 15:30:55
[mode suicide on]Un modo consciencieux est un modo mort[mode suicide mute]Quoi, c'est pas ça le principe?[mode suicide off]
Vu le nombre de sujets mal placer, ils doivent en avoir marre les modos, et ils veulent surement pas revivre l'époque du pingpong géant où chaque modo envoyaient ailler les sujets à moitié hors sujet avec les allés retour que ca entrainaient.
Ceci dit, c'est vrai qu'un peu de ménage ou d'automénage (on peut réver) ca ferait du bien.
Marsh Posté le 03-11-2005 à 15:31:34
antp est en vacances ? Harko ne vient plus sur la cat php ?
Encore une énigme jamais résolue
Marsh Posté le 03-11-2005 à 15:32:00
Il sont déjà venus sur la cat' php?
Marsh Posté le 03-11-2005 à 15:32:38
J'en sais rien tiens ...
Marsh Posté le 03-11-2005 à 15:35:59
skeye a écrit : Il sont déjà venus sur la cat' php? |
J'ai déjà croisé harko sur php me semble. et antp, on l'a vu il y a pas longtemps dans divers.
Marsh Posté le 03-11-2005 à 15:38:12
Moué, ils passent à chaque fois qu'il leur tombe un bras, quoi./o
Marsh Posté le 01-11-2005 à 16:45:15
Bonjour, je cherche a optimiser la taille de mes champs de ma BDD
Tout d'abord j'ai lu qu'un tinyint occupe 1 octet soit 256 valeur. Mais je comprend pas la valeur qu'il faut lui assigner, puisqu'il occupe 1 octet, pourquoi lui donner une taille ? a quoi correspond tinyint(1), tinyint(2),tinyint(3), ...
Ensuite j'ai un champs qui prend comme valeur true ou false
Faut il faire tinyint(1), enum('true','false') ou autre ?
Merci de vos lumieres sur le sujet