Le cours s’adresse aux DBAs MySQL qui ont en charge le tuning du serveur et l’optimisation des performances. La connaissance de SQL et de l’administration de MySQL est indispensable.
Plan détaillé
Introduction et rappels
- La base information_schema.
- Options et variables système.
- Traitement d’une instruction SQL.
- Statistiques des données dans
- Démarches et choix d’optimisation.
Travaux pratiques : collecte des statistiques.
Outils de mesure
- Journal des requêtes lentes dans MySQL.
- Profil d’exécution d’une instruction SQL (profiling).
- Benchmarks et usage de mysqlslap.
- Utilisation de la base SYS.
- Configuration et utilisation de performance_schema.
- Utilisation de la fonction benchlark().
Travaux pratiques : journal des requêtes lentes, profiling, SYS et performance_schema, benchmark().
Organisation des données
- Moteur MyISAM et stockage des tables.
- Moteur InnnoDB et stockage des tables.
- Réorganisation des tables.
- Partitionnement des tables.
- Utilisation des tables de type Memory.
- Utilisation des tables temporaires.
- Utilisation des index.
Travaux pratiques : compression des tables MyISAM, compression des tables InnoDB, réorganisation des tables, partitionnement des tables, utilisation des tables Memory, utilisation des tables temporaires.
Optimisation de l’application
- Modèle de données.
- Types utilisés dans MySQL.
- Instruction EXPLAIN et plans d’exécution.
- Conseils de base.
- Optimisation du verrouillage.
- Utilisation des index fulltext.
- Utilisation des instructions préparées.
Travaux pratiques : optimisation du modèle, types de des données, amélioration de plan d’exécution, utilisation des index fulltext, utilisation des instructions préparées.
Tuning du serveur
- Configuration de l’utilisation de la mémoire, les différents caches utilisés.
- Mémoire utilisée par thread.
- Paramétrage du moteur InnoDB.
- Cache des requêtes, mesure de son efficacité.
- Cache d’index (Key buffer).
Travaux pratiques : paramétrage du moteur InnoDB, utilisation des variables d’état.