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 3772 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 263 articles
|BIO_PSEUDO|
Commentaires récents

Publié par arthur dans java

essaye avec une while, cela devrais marcher. mais après je ne sais pas comment paramétrer. c'est toi qui voit

Publié par hhhhh dans java

oooooooooooooooooooo

Publié par Axel dans java

le resultat de la fonction getMacAddress() est de type String,
ainsi pour afficher l'adresse MAC dans une JLabel

String macAddress=NetworkHardware.getMacAddress();
label.setText(macAd...

Publié par Fobec dans tuto

Merci pour la remarque Toluar,
Les user-agent sont effectivement un bon indicateur pour les utilisateurs. Les crawlers et robots en tout genre ne prennent pas toujours la peine de renseigner cette...

Publié par Marmz dans java

Super ! pile ce que je cherchais , merci Mr Fobec