Introduction
- Architecture MySQL.
- Choix du moteur de stockage.
- Choix des types de données.
- Normalisation/dénormalisation.
- Traitement d'une instruction SQL.
- La base INFORMATION_SCHEMA.
- Collecte des statistiques.
Travaux pratiques
Collecte des statistiques, choix des types de données.
Outils de mesure et de diagnostic
- Traçage et profiling.
- Commande EXPLAIN.
- Utilisation du moteur BLACKHOLE.
- Utilisation de MySQLslap.
- Journalisation et journal des requêtes lentes.
Travaux pratiques
Profiling, utilisation de la commande EXPLAIN, utilisation de l'outil MySQLslap, journal des requêtes lentes.
Organisation des données et indexation
- Tables MyISAM. Architecture interne.
- Indexation des tables MyISAM.
- Accélération des recherches avec les index "Fulltext".
- Maintenance des tables MyISAM, résolution de problèmes.
- Tables transactionnelles InnoDB.
- Architecture interne des tables InnoDB. Structure des tables et des index InnoDB. Maintenance.
- Gestion de(s) tablespace(s).
- Utilisation des tables de type MEMORY. Partitionnement.
Travaux pratiques
Utilisation des index Fulltext et des tables MEMORY. Compression des tables MyISAM.
Optimisation des applications
- Fonctionnement de l'optimiseur MySQL.
- Outil EXPLAIN et plans d'exécution.
- Utilisation des instructions préparées.
- Verrouillage des tables.
- Fonctionnement transactionnel et niveaux d'isolation (InnoDB).
- Utilisation des vues.
- Optimiser les opérations de chargement.
Travaux pratiques
Plans d'exécution. Utilisation de requêtes préparées, optimisation de chargement de données. Transactions et amélioration de la concurrence.
Optimisation du serveur
- Observation de l'activité du serveur.
- Variables dynamiques.
- Utilisation de la mémoire dans MySQL.
- Cache des requêtes. Cache d'index.
- Optimisation du moteur InnoDB et MyISAM.
Travaux pratiques
Utilisation du cache de requêtes et du cache d'index.