Objectifs du Chapitre

Comment les Requêtes Sont Exécutées

Lorsqu'une requête SQL est soumise à MySQL, elle passe par plusieurs étapes avant de retourner les résultats :

  1. Analyse : MySQL vérifie la syntaxe de la requête pour s'assurer qu'elle est correcte.
  2. Optimisation : MySQL détermine le meilleur plan d'exécution pour la requête.
  3. Exécution : MySQL exécute le plan et retourne les résultats.

Introduction aux Plans d'Exécution

Utilisation de EXPLAIN

L'instruction EXPLAIN permet de voir comment MySQL exécute une requête. Elle affiche des informations sur l'ordre d'accès aux tables, l'utilisation des index, etc.

Syntaxe


EXPLAIN SELECT *
FROM books
JOIN authorships ON books.book_id = authorships.book_id
JOIN authors ON authors.author_id = authorships.author_id
WHERE authors.name = 'Harper Lee';

Interprétation des Résultats d'EXPLAIN

L'instruction EXPLAIN permet de comprendre comment MySQL exécute une requête SQL en affichant des informations détaillées sur le plan d'exécution. Voici comment interpréter les résultats d'EXPLAIN à partir du tableau donné :

id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE authors ALL PRIMARY Null Null Null 12 10.00 Using where
1 SIMPLE authorships ref authorships_ibfk_2,FK_authorships_authors FK_authorships_authors 5 library.authors.author_id 1 100.00 Using where
1 SIMPLE books eq_ref PRIMARY PRIMARY 4 library.authorships.book_id 1 100.00 Null

Colonnes Clés des Résultats d'EXPLAIN

  1. id : L'identifiant de la requête, indiquant l'ordre dans lequel les tables sont accédées. Ici, toutes les étapes de la requête partagent le même id (1), indiquant qu'elles font partie de la même requête simple.
  2. select_type : Le type de sélection. Pour toutes les lignes, c'est SIMPLE, ce qui signifie qu'il s'agit d'une requête simple sans sous-requêtes ou unions.