Optimisation sql

Optimisation sql - PHP - Programmation

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

Reply

Marsh Posté le 01-11-2005 à 16:45:15   

Reply

Marsh Posté le 01-11-2005 à 17:22:58    

:hello:  
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é.

Reply

Marsh Posté le 01-11-2005 à 18:30:42    

fabs2b a écrit :


Ensuite j'ai un champs qui prend comme valeur true ou false
Faut il faire tinyint(1), enum('true','false') ou autre ?


 
La majorité des sgbd ont un type boolean qui est tout à fait de circonstance dans ton cas.

Reply

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 ;-)


Message édité par fabs2b le 01-11-2005 à 20:29:58
Reply

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.


Message édité par omega2 le 03-11-2005 à 12:57:05
Reply

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

Reply

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.


Message édité par omega2 le 03-11-2005 à 14:43:15
Reply

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...:o


---------------
Can't buy what I want because it's free -
Reply

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. :lol:
 
PS : Tiens, ce coup ci, j'ai oublier de le dire qu'il faut changer de sections. :lol:

Reply

Marsh Posté le 03-11-2005 à 14:58:15    

Ca manque de modos consciencieux, par ici.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2005 à 14:58:15   

Reply

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.


Message édité par omega2 le 03-11-2005 à 15:31:22
Reply

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 :D


---------------
http://www.alsacreations.com, http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net. A ne surtout pas prendre en exemple : http://www.worldinternet.be
Reply

Marsh Posté le 03-11-2005 à 15:32:00    

Il sont déjà venus sur la cat' php?[:opus dei]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2005 à 15:32:38    

[:pingouino]
 
J'en sais rien tiens ...
 
[:pingouino]


---------------
http://www.alsacreations.com, http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net. A ne surtout pas prendre en exemple : http://www.worldinternet.be
Reply

Marsh Posté le 03-11-2005 à 15:35:59    

skeye a écrit :

Il sont déjà venus sur la cat' php?[:opus dei]


J'ai déjà croisé harko sur php me semble. et antp, on l'a vu il y a pas longtemps dans divers.

Reply

Marsh Posté le 03-11-2005 à 15:38:12    

Moué, ils passent à chaque fois qu'il leur tombe un bras, quoi./o


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed