Catégorie 04SKILLS
MariaDB

MySQL & MariaDB

Optimisation, EXPLAIN, index composites, Galera Cluster et backup production

Installation
Skill Claude — Globalmkdir -p ~/.claude/skills/mysql-mariadb
MariaDB (Debian/Ubuntu)apt install mariadb-server mariadb-client percona-toolkit
Client CLI améliorépip install mycli
Backup avancéapt install percona-xtrabackup
SKL
À propos

Skill Claude pour l'administration avancée de MySQL et MariaDB dans les stacks Drupal. Couvre le profiling des requêtes lentes (slow log + pt-query-digest), l'analyse des plans EXPLAIN, les index composites adaptés aux patterns de requêtes Drupal, la configuration InnoDB optimisée, et Galera Cluster pour la haute disponibilité MariaDB.

Commandes
CommandeDescription
EXPLAIN SELECT * FROM node_field_data WHERE type='article' AND status=1 ORDER BY created DESC LIMIT 20Analyser le plan d'exécution d'une requête Drupal typique
mysqldumpslow -s t -t 20 /var/log/mysql/slow.logTop 20 requêtes les plus lentes
pt-query-digest /var/log/mysql/slow.logAnalyse détaillée du slow query log (Percona Toolkit)
mysqldump --single-transaction --routines drupal | gzip > backup.sql.gzBackup cohérent sans lock (InnoDB)
SHOW ENGINE INNODB STATUS\GDiagnostic InnoDB (deadlocks, buffer pool, transactions actives)
SHOW STATUS LIKE 'wsrep_%'État du cluster Galera (MariaDB HA)
Exemples
Optimiser les requêtes lentes DrupalCODE
"Analyse les requêtes lentes du slow log MariaDB et optimise les 3 plus critiques :
1. pt-query-digest /var/log/mysql/slow.log pour identifier les patterns
2. EXPLAIN FORMAT=JSON sur chaque requête lente
3. Proposer les index composites manquants (type, status, created, langcode)
4. Vérifier que les index sont utilisés après création
5. Montrer le gain de performance estimé (type=range vs type=ALL)"
Configurer Galera Cluster pour Drupal HACODE
"Configure un cluster Galera 3 noeuds pour Drupal sur MariaDB 10.11 :
1. galera.cnf complet avec wsrep_cluster_address pour 3 IPs
2. Initialisation du premier noeud (galera_new_cluster)
3. Rejoindre les 2 autres noeuds (systemctl start mariadb)
4. Vérifier la synchronisation (SHOW STATUS LIKE 'wsrep_cluster_size')
5. Configuration HAProxy pour router les reads/writes vers le cluster"
Backup et restore sans interruption (InnoDB)CODE
"Procédure de backup/restore pour une base Drupal de 50Go :
1. mysqldump --single-transaction pour un backup cohérent sans lock
2. Alternative : Percona XtraBackup pour un hot backup (plus rapide)
3. Tester le restore sur un serveur de staging
4. Vérifier l'intégrité avec mysqlcheck --all-databases
5. Cron de backup automatique avec rotation sur 7 jours"