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

Publié par need help dans java

Merci pour cet exemple.
Est ce possible de récupérer le flux video d'une camera ou bien une appareil photo branché par USB.

Merci d'avance.

Publié par Fobec dans CMS

//une variante avec UrlMon
uses
UrlMon;

function GetPageContent(URL: string): string;
var
MyFile: file;
Buf: array[0..14] of Char;
Filename: string;

Publié par leflo dans php5

Bonjour
Sans parler du fait que l'IP peut ne pas vouloir dire grand chose, en cas de proxy/translation comment on fait? On voit pas et on interdit tout meme si l'utilisateur n'est pas responsa...

Publié par Tytydodo dans java

Top cool merci cela ma super aide!!!

Publié par mido dans java

si je veut extraire les liens a partir de google searche c'est a dire utiliser la raquette suivante "http://www.google.tn/search?q=" avec java bien sur ..merci d'avance :)