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

Publié par Jacques dans CMS

Cette méthode produit une gamme de gris qui ne tient pas compte des caractéristiques de la vision humaine.
En vidéo on utilise la fonction luminance qui représente mieux les jaunes e...

Publié par Kezouille dans java

Bonjour Axel,

Merci pour ce petit guide qui m'a bien aide dans ma tache. En effet j'ai developpe une petite application afin de detecter l'ajout d'un fichier une image dans un repertoire et de...

Publié par Christophe dans CMS

je te propose d'améliorer la fonction
procedure TForm1.Button1Click(Sender: TObject);
begin
GetDesktopListViewHandle;
ListView_SetTextBkColor(hLV, $FFFFFFFF);
ListView_...

Publié par Tactic Rayan dans java

Merci beaucoup, c'est tres interressent, tres longtemps que j'ai recherche ce code

Publié par medfayz dans java

hi everybody thanks for the code , and please can any one help me to fix that exception.
javax.media.NoPlayerException: Cannot find a Player for :vfw:0

thanks