Je vais convertir toutes les tables de la base de données de 500 Mo de MyISAM en InnoDB pour voir si cela améliorera les performances globales d'un site Drupal 6 occupé. Je me demande quelle est la meilleure façon (c'est-à-dire la plus sûre / la plus facile / la plus rapide) de faire la conversion.
9
Réponses:
En tant que DBA MySQL, je fais confiance à MySQL pour effectuer la conversion en demandant à MySQL d'écrire le script pour moi.
Formez la commande Linux exécutez cette requête
Le script convertira d'abord les plus petites tables. Ce script a également ignoré toutes les tables MyISAM qui ont des index FULLTEXT.
Après avoir regardé le script, vous pouvez simplement l'exécuter dans MySQL comme suit:
ou si vous voulez voir le calendrier de chaque conversion, connectez-vous à mysql et exécutez ceci:
Cela ne devrait pas être gâché car un verrouillage complet de la table se produit lors de l'exécution de la conversion.
Une fois que toutes les tables sont converties, vous devez ajuster les paramètres MySQL pour l'utilisation d'InnoDB et réduire le key_buffer.
Veuillez lire ceci pour définir le pool de tampons InnoDB: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Veuillez également lire ceci: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
Essaie !!!
la source
J'ai écrit une commande drush pour cela il y a un moment.
A travaillé pour moi il y a un an environ, je ne sais pas si l'API drush a changé depuis.
Vous pouvez placer cela dans un convert.drush.inc par exemple dans le dossier .drush ou l'exécuter d'une manière ou d'une autre sur votre site, par exemple avec le bloc devel execute php. En tant que script drush, vous pouvez l'appeler comme ceci:
Avertissement : si quelqu'un fait quelque chose avec la base de données pendant l'exécution de ces commandes, votre base de données sera complètement gâchée. Irrécupérable. Alors, mettez votre site en mode maintenance et faites une sauvegarde avant d'essayer! Et bien sûr, essayez d'abord un site de développement / test :)
la source