MySQL est le deuxième système de gestion de base de données relationnelle open-source le plus utilisé au monde. Il est devenu si populaire grâce à ses performances rapides et constantes, sa grande fiabilité et sa facilité d’utilisation. Cet article présente certaines des meilleures pratiques de MySQL.
Best practices in MySQL
1. Toujours utiliser le bon type de données
Utiliser les types de données en fonction de leur nature. Si vous utilisez des types de données non pertinentes, cela peut consommer plus d’espace ou entraîner des erreurs. Exemple : Utiliser VARCHAR (20) pour stocker les valeurs de date et d’heure au lieu du type de données DATETIME entraînera des erreurs. Il y a également un cas possible de stockage de données invalides.
2. Utilisez CHAR (1) plutôt que VARCHAR(1)
Si vous enchaînez un seul caractère, utilisez CHAR(1) plutôt que VARCHAR(1) car VARCHAR(1) prendra un octet supplémentaire pour stocker les informations.
3. Utilisez le type de données CHAR pour stocker uniquement des données de longueur fixe
Exemple : Utiliser CHAR (1000) au lieu de VARCHAR (1000) consommera plus d’espace si la longueur des données est inférieure à 1000.
4. Évitez d’utiliser des formats de date régionaux
Lorsque vous utilisez le type de données DATETIME ou DATE, utilisez toujours le format de date YYYY-MM-DD ou le format de date ISO qui convient à votre moteur SQL. Les autres formats régionaux comme DD-MM-YYY, MM-DD-YYYY ne seront pas stockés correctement.
5. Indexez les colonnes clés
Veillez à indexer les colonnes qui sont utilisées dans les clauses JOIN afin que la requête renvoie le résultat rapidement. Si vous utilisez une déclaration UPDATE qui implique plus d’une table, assurez-vous que toutes les colonnes qui sont utilisées pour joindre les tables sont indexées
6. N’utilisez pas de fonctions sur les colonnes indexées
L’utilisation de fonctions sur les colonnes indexées va à l’encontre du but de l’index. Supposons que vous vouliez obtenir des données où les deux premiers caractères du code client sont AK, n’écrivez pas SELECT columns FROM table WHERE left (customer_code,2)=’AK’ mais réécrivez-le en utilisant SELECT columns FROM table WHERE customer_code like ‘AK%’ qui fera usage de l’index ce qui entraîne un temps de réponse plus rapide.
7. Utilisez SELECT uniquement si nécessaire
Ne vous contentez pas d’utiliser aveuglément SELECT dans le code. S’il y a beaucoup de colonnes dans la table, toutes seront retournées, ce qui ralentira le temps de réponse, en particulier si vous envoyez le résultat à une application frontale. Tapez explicitement les noms des colonnes qui sont réellement nécessaires.
8. Utilisez la clause ORDER BY uniquement si nécessaire
Si vous voulez afficher le résultat dans l’application frontale, laissez-la ORDER le jeu de résultats. Faire cela en SQL peut ralentir le temps de réponse dans l’environnement multi-utilisateurs.
9. Choisissez le moteur de base de données approprié
Si vous développez une application qui lit des données plus souvent qu’elle n’en écrit (ex : moteur de recherche), choisissez le moteur de stockage MyISAM. Si vous développez une application qui écrit des données plus souvent qu’elle ne les lit (ex : transactions bancaires en temps réel), choisissez le moteur de stockage INNODB. Le choix d’un mauvais moteur de stockage affectera les performances (à lire : le jeu Cyberpunk 2077 est-il mauvais ?)
10. Utilisez la clause EXISTS partout où cela est nécessaire
Si vous voulez vérifier l’existence de données, n’utilisez pas If (SELECT count(*) from Table WHERE col=’some value’)>0 au lieu de cela, utilisez la clause EXISTS If EXISTS(SELECT from Table WHERE col=’some value’) qui est plus rapide en temps de réponse.