L’une des principales raisons pour lesquelles les sites WordPress à grande échelle ralentissent est que leur base de données n’a pas été optimisée. Beaucoup d’anciens sites utilisent encore le moteur de stockage MyISAM dans leur base de données. Au cours des dernières années, InnoDB s’est montré plus performant et plus fiable. Une bonne raison d’utiliser InnoDB plutôt que MyISAM est l’absence de verrouillage complet au niveau de la table. Cela permet d’accélérer le traitement de vos requêtes.

InnoDB vs MyISAM

Voici quelques-unes des principales différences entre InnoDB et MyISAM :

  • InnoDB est doté d’un verrouillage de niveau de débit. MyISAM ne dispose que d’un verrouillage complet au niveau de la table.
  • InnoDB possède ce qu’on appelle l’intégrité référentielle qui implique la prise en charge des clés étrangères (SGBDR) et des contraintes relationnelles, ce que MyISAM ne fait pas (DMBS).
  • InnoDB supporte les transactions, ce qui signifie que vous pouvez les valider et les annuler. Ce n’est pas le cas de MyISAM.
  • InnoDB est plus fiable car il utilise les logs de transactions pour la récupération automatique. Ce n’est pas le cas de MyISAM.

Utilisez-vous MyISAM ou InnoDB ?

Si vous utilisez un site WordPress relativement nouveau, il y a de fortes chances que vous utilisiez déjà le moteur de stockage InnoDB MySQL. Mais avec les anciens sites WordPress, vous pourriez vouloir faire une vérification rapide. Certains sites peuvent même avoir mélangé et fait correspondre les tables MyISAM et InnoDB, dans lesquelles vous pouvez voir des améliorations en les convertissant partout. Suivez les étapes simples ci-dessous pour vérifier.

Étape 1

Connectez-vous à phpMyAdmin et cliquez dans votre base de données mySQL.

Étape 2

Faites un balayage rapide ou un tri de la colonne « Type » et vous pouvez voir quels types de moteurs de stockage vos tables utilisent. Dans l’exemple ci-dessous, vous pouvez voir que deux des tables utilisent toujours MyISAM.

Trouver les tables MyISAM
Trouver les tables MyISAM

Vous pouvez également lancer une requête pour savoir s’il existe des tables MyISAM. Remplacez ‘database’ par le nom de votre base de données.

SELECT TABLE_NAME,
 ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'

Convertir MyISAM en InnoDB avec phpMyAdmin

Vous pouvez convertir MyISAM en InnoDB assez facilement. Cet exemple ci-dessous utilise la table wp_comments. Exécutez simplement la commande ALTER pour la convertir en moteur de stockage InnoDB. Remarque : Nous vous recommandons toujours de sauvegarder votre base de données MySQL avant d’exécuter toute opération sur celle-ci.

ALTER TABLE wp_comments ENGINE=InnoDB;
Assurez-vous que vous utilisez MySQL 5.6.4 ou une version plus récente, sinon vous pourriez rencontrer des problèmes où l’indexation plain text n’est pas encore supportée par InnoDB. Si vous êtes un client Kinsta, vous n’avez pas à vous inquiéter de cela.

Alternativement, vous pouvez aussi les convertir manuellement avec phpMyAdmin. Cliquez simplement sur le tableau MyISAM, cliquez dans l’onglet « Opérations » et changez le moteur de stockage.

Convertir MyISAM en InnoDB
Convertir MyISAM en InnoDB

Convertir MyISAM en InnoDB avec WP-CLI

WP-CLI est un outil en ligne de commande permettant aux développeurs de gérer les tâches communes (et moins communes) d’une installation WordPress. Lisez cet article pour savoir comment convertir MyISAM en InnoDB avec WP-CLI.