Publié le 12/11/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Optimiser une base MySQL avec les bons types de champ

Par définition, le rôle d'une base de données est de stocker une grande quantité de données. Pour y enregistrer du texte, des nombres ou encore des dates, il est essentiel de bien choisir le type de colonne.
La première raison est d'optimiser l'espace occupé par la base de données. En général, plus la base est compacte, plus les performances sont élevées.
La deuxième raison est de garantir l'intégrité et la cohérence des données. En optant pour un type de donnée strict et prévu au plus juste, une valeur incorrecte sera automatiquement refusée lors de l'insertion d'un nouvel enregistrement.

Choisir un champ MySql

Le choix d'une architecture pour sa base de donnée est déterminant. En plus de la répartition des valeurs dans un ensemble de table, le choix du type de champs au plus proche des valeurs attendues peut également apporter des gains de performance.

Type Int: nombre entier

Champs Intervalle Taille
TINYINT -128 a 127 1 octet
SMALLINT - 32 768 a 32 767 2 octet
MEDIUM INT
-8 388 608 a 8 388 607 3 octet
INT -2 147 483 648 a 2 147 483 647 4 octet
BIGINT -9 223 372 036 854 775 808
a 9 223 372 036 854 775 807
8 octet

- privilégier le type INT dans la définition des champs d'une table, ce type occupe l'espace le plus faible et offre les meilleures performances si le champs en définit en tant qu'index,
- en fixant l'attribut unsigned, les valeurs seront toujours positives. L'intérêt est de doubler la capacité de stockage du type. Par exemple, l'intervalle de TINYINT passe de 0 a 255 avec l'attribut unsigned.

Type String : chaine de caractère

Champs Intervalle Taille
CHAR(x) 0 a 255 x octet
VARCHAR(x) 0 a 255 x octet +1
TINYTEXT et TINYBLOB 0 a 255 x octet +1
TEXT et BLOB 0 a 65 535 x octet +2
MEDIUMTEXT et MEDIUMBLOB 0 a 16 777 215 x octet +3
LONGTEXT et LONGBLOB 0 a 4 294 967 296 x octet +4

- a première vue les types CHAR et VARCHAR semblent identiques. En fait, une valeur stockée dans un champ CHAR occupe toujours la taille maximale définie en x contrairement a VARCHAR. En contre-partie, les performances du type CHAR sont supérieurs a celle des données en VARCHAR.

Type Date et Heure

Champs Intervalle Format Taille
DATE '1000-01-01' a '9999-12-31' YYYY-MM-DD 3 octets
DATETIME '1000-01-01 00:00:00' a '9999-12-31 23:59:59' YYYY-MM-DD HH:MM:SS 8 octets
TIME '00:00:00' a '23:59:59' HH:MM:SS 3 octets
TIMESTAMP 19700101000000 a 20380119041407 YYYYMMDDHHMMSS 4 octets

En complément aux 3 types de champ les plus courants, la documentation Mysql est consultable en ligne en détaillant chaque type.
fds

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
tuto - webmaster
Mise a jour
12/11/2010
Visualisation
vu 2852 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par deefaze dans CMS

Label1.Caption := format(\'Red: $%.2x, Green : $%.2x, Blue : $%.2x\',[R,G,B]);

:)

Publié par makanaki dans logiciel

je veux essayer ce logiciel pour tester les jeux de loto de chez nous

Publié par Altair dans tuto

Bonjour, cette solution fonctionne-t-elle également sur les serveurs mutualisés Amen svp ?

Publié par BIBAK dans CMS

merci infiniment, ce sont des beau icons::: :)