Même les sites les plus simples connaissant un trafic faible auront un jour ou l’autre besoin d’optimiser leurs tables MySQL pour améliorer leurs performances. Le problème est que les systèmes de gestion de contenu (CMS) plug-and-play tels que WordPress ou Joomla rendent opaque l’optimisation de MySQL en arrière-plan pour les débutants voire les webmasters confirmés. Si vous voulez configurer les tables MySQL de votre site en vue des meilleurs résultats possibles, ces conseils simples, mais productifs, peuvent y parvenir.
Réduisez la base de données si possible
Il va sans dire qu’une petite base de données est plus facile à interroger et par conséquent retournera ses résultats plus rapidement. Il existe quelques solutions éprouvées pour réduire la taille de vos bases de données. Pour commencer, essayez de supprimer les métadonnées superflues et les tables orphelines, soit automatiquement, soit manuellement suivant un calendrier. Utilisez une extension conçue pour votre CMS qui supprimera les tables inutilisées afin d’éviter une croissance non-maitrisée de vos tables.
Ne lancez pas de requêtes en boucle
Un des plus gros problèmes auxquels font face les sites PHP s’appuyant sur MySQL est le fiasco des soi-disant « interrogations en boucle ». Pour faire simple, c’est une situation dans laquelle une architecture for each lance un réaction en chaîne mettant rudement à l’épreuve le moteur MySQL. Pour éviter un tel scénario, utilisez la commande MySQL UPDATE afin d’éviter une spirale sans fin de requêtes sur vos bases de données.
Vérifiez fréquemment vos logs de requêtes
Consulter vos fichiers de logs constitue une bonne pratique de gestion de serveurs, qu’importe ce que vous faites. Les fichiers de log MySQL peuvent s’avérer riches de renseignements si vous voulez optimiser les performances de vos serveurs. Vous devez rechercher les requêtes effectuées le plus couramment dans une journée, une semaine ou un mois. Une fois que vous les connaissez, vous pouvez optimiser pour ces requêtes de manière significative.
Activez un moteur de mise en cache
C’est un gâchis de ressources serveur que d’effectuer un lookup si le même lookup a été effectué il y a peu de temps. C’est pourquoi les plates-formes de mise en cache sont si populaires. Implémenter une routine de mise en cache est plutôt facile, grâce à la magie des extensions. Memcached, AdoDB et CSQL sont de très bons moyen de rendre vos requêtes aussi simples que faire appel à des pages statiques et peut sauvegarder vos ressources.
Utilisez les caractères de remplacement avec parcimonie
Aussi utiles que peuvent êtres les caractères de remplacement dans la création de requêtes MySQL, ils peuvent produire des résultats inattendus si ils sont utilisés au petit bonheur la chance. Les wildcards de préfixe et de suffixe sont supérieurs aux wildcards généraux dans la plupart des situations, car ils ne résulteront pas en un nombre important de requêtes vers votre base de données. Si vous ne deviez retenir qu’une chose, ce serait de ne pas vous appuyer sur les caractères de remplacement, à moins d’en connaître parfaitement les conséquences.
Tirez parti de la LIMIT
Dans des circonstances idéales, une requête ne devrait renvoyer qu’un certain nombre de résultats. Lorsque les utilisateurs de sites Web cherchent un nombre spécifique d’articles de blog ou de produits sur votre site, les 10 ou 20 premiers feront l’affaire. Après cela, vous gaspillez simplement des appels BDD sur des résultats qui ne seront d’aucune utilité à l’utilisateur lambda. Utilisez LIMIT afin de n’afficher que les 12 premiers résultats, par exemple.
Débarrassez-vous des requêtes en cache
Comme vous le savez, le cache est une composante importante de l’optimisation informatique. Le problème est que le cache peut grossir plus rapidement que vous ne le pensez si vous ne définissez pas de limites strictes. Définir l’option query_cache_size à 0 vous assurera que vos tables MySQL ne deviendront pas un fardeau pour votre serveur, qu’importe votre configuration d’hébergement.
Un peu de recherches peut faire des merveilles
Évidemment, ces conseils sont d’ordre général et leur efficacité dépendra de la configuration de votre site et de votre serveur. Quoi qu’il en soit, ils fonctionneront pour n’importe quelle base de données MySQL et ses tables associées. Pour profiter au maximum de ces pointeurs simples, vous devrez y travailler un peu plus. Mais même le minimum syndical portera ses fruits.