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. See Chapitre 14, Moteurs de tables MySQL et types de table.
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. See
Section 14.1.3, « Formats 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. See Section 7.5.2, « Réglage 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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.