7.4 Optimiser la structure de la base de données
7 Optimisation de MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Conception ->Rendre vos tables aussi compactes que possible . Index de colonnes . Index sur plusieurs colonnes . Comment MySQL utilise les index . Le cache de clé des tables MyISAM . Comment MySQL compte les tables ouvertes . Quand MySQL ouvre et ferme les tables . Inconvénients de la création d'un grand nombre de tables dans la même base de données
|
7.4.2 Rendre vos tables aussi compactes que possible
Une des optimisations simple est de réduire au maximum la taille de vos
données et de vos index sur le disque et en mémoire. Cela peut donner
des accélérations impressionnantes, car les lectures sur le disque sont
plus rapides, et moins de mémoire centrale sera utilisée. L'indexation
de colonnes de petites taille prend aussi moins de ressources.
MySQL supporte un grand nombre de type de tables et de format de ligne.
Choisir ces types peut vous conduire à des améliorations de performances.
Types de tables MySQL .
Vous pouvez obtenir des gains de performances sur les tables et minimiser
l'espace disque en utilisant les techniques ci-dessous :
-
Utilisez les types les plus efficaces et les plus petits possibles.
MySQL a différents types spécialisés qui épargnent de l'espace disque
et de la mémoire.
-
Utilisez les types d'entiers les plus petits possible pour réduire les
tables. Par exemple,
MEDIUMINT
est souvent préférable à
INT
.
-
Déclarez les colonnes pour qu'elle soient
NOT NULL
si possible. Cela
accélère les traitements, et vous fait gagner un bit par colonne.
Notez que si vous avez vraiment besoin d'une valeur
NULL
dans votre
application, il est recommandé de l'utiliser. Evitez simplement de l'utiliser
par défaut sur toutes les colonnes.
-
Si vous n'avez pas de colonne de taille variable (
VARCHAR
,
TEXT
ou
BLOB
), un format de ligne à taille fixe
est utilisé. C'est plus rapide, mais cela prend plus d'espace sur
le disque. Format de table
MyISAM
.
-
La clé primaire doit être aussi courte que possible. Cela rend l'identification
des lignes plus efficace.
-
Ne créez que des index dont vous avez besoin. Les index sont bons pour accélérer
les lectures, mais sont plus lents lorsque vous écrivez des données. Si vous
accéder essentiellement à votre table en lecture avec des combinaisons
de colonnes, faites un index avec ces colonnes. Le premier index doit être
la colonne la plus utilisée. Si vous utilisez
constamment
de nombreuses
colonnes, vous devriez utiliser la colonne avec le plus de doublons en premier,
pour obtenir une meilleure compression.
-
Si il est probable qu'une colonne a un préfixe unique avec les premiers
caractères, il est mieux de n'indexer que ce préfixe. MySQL supporte
les index sur une partie de colonne. Les index les plus courts sont les plus
efficaces car ils prennent moins d'espace disque, et aussi, car ils absorbent
plus de requêtes grâce au cache en mémoire. Choix des paramètres du serveur .
-
Dans certaines circonstances, il peut être intéressant de séparer en deux
une table qui est scannée très souvent. C'est particulièrement vrai pour les
formats de tables dynamiques, et si possible, utilisez un format de table
statique pour les colonnes les plus pertinentes.
|