WP Tech 2014 : Comprendre et Optimiser la base de données WordPress

Vous venez d’installer un site WordPress, vous savez où placer les thèmes et les plugins, mais savez-vous comment fonctionne la base de données WordPress ? La structure WordPress est légèrement différente d’une structure ordinaire et mérite le détour pour comprendre son intérêt et ses limites. Par ailleurs, il existe une multitude d’astuces pour optimiser les performances, en particulier pour les sites à fort trafic ou avec beaucoup de contenus.

Slides de la présentations

WP Tech Nantes 2014 : Comprendre et optimiser la base de données WordPress (PDF ; 818.5Ko)

Ce qu’il faut retenir absolument

  • Une installation WordPress va créer un nombre record et minimum de 11 tables (+7 avec multisite)
  • Changez absolument le préfixe « wp_ » de vos tables WordPress (le tutoriel pour changer le préfixe se trouve ici)
  • La structure WordPress fait en sorte de placer des données complémentaires dans des tables prévus à cet effet, qui contiennent généralement les valeurs sous le forme : clé/valeur
  • Les données complexes sont sérialisées
  • Ce mode de fonctionnement est très flexible, modulaire et facile à prendre en main. En revanche ça pose parfois des soucis de performances et de lisibilité
  • Pour lire et écrire des données dans les tables WordPress, pensez aux fonctions telles que add_option(), get_option(), update_option() ou delete_option()
  • Il est parfois nécessaire de créer ses propres tables
  • Le plugin HyperDB vous aidera si vous avez un site qui tient sur plusieurs serveurs
  • MySQL peut vous aider à comprendre comment optimiser les performances
  • Le choix du moteur de stockage n’est pas important pour les petits  et moyens sites web
  • Il est intéressant de noter les différences entre MyISAM et InnoDB
  • Pensez à réduire le nombre de requêtes SQL
  • Utilisez EXPLAIN pour comprendre les raisons d’une baisse de performance
  • Les transients permettent de mettre en cache les résultats de requêtes SQL
  • Activez le log des Slow Queries
  • Il existe une multitude de choses à purger, soit à l’aide de plugin ou en utilisant des requêtes SQL de purge des données WordPress
  • Après la purge, pensez à utiliser OPTIMIZE
  • Pour limiter le gonflement mettez WP_POST_REVISIONS à false et AUTOSAVE_INTERVAL à une valeur supérieure à 60

Et voici la liste des plugins qui peuvent aider à améliorer les développements et les performances :

Bonus

D’une manière générale il faut se souvenir que les optimisations sont peu nécessaires pour les petits et moyens sites web. Par ailleurs, la présentation étant limité dans le temps, elle a omis de préciser quelques éléments :

  • Le backup est indispensable, en particulier avant de grosses modifications
  • Lorsqu’on débute il est préférable de faire les tests sur un environnement de tests (en local ou sur un site prévu à cet effet)
  • Link Manager : réactiver la fonctionnalité qui permet d’ajouter des liens et donc réutiliser la table wp_links
  • « N’oubliez pas de mettre SAVEQUERIES à true en développement et de mettre le plugin developer », merci @be_api
  • Pour en apprendre plus sur le scaling MySQL : https://www.youtube.com/watch?v=57EJ8KDDBH0 (merci encore @bep_api)
  • Si vous souhaitez faire une migration de MyISAM vers InnoDB et que vous utilisez le plugin « YARPP », pensez à supprime les index full-text qu’il a rajouter sur la table wp_posts
  • Par défaut les indexes sont globalement bien construit, mais il est possible d’en ajouter un sur la colonne « autoload » de wp_options :
    ALTER TABLE wp_options ADD INDEX (`autoload`);

Merci à toutes les personnes présentes au WP Tech. Par ailleurs, n’oubliez pas que les commentaires de cet article sont présents pour partager les bonnes pratiques et pour faire découvrir vos bonnes trouvailles.

__

Crédit photo de l’image à la une : @wpchannel, merci 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.