Lorsqu'une requête SQL est soumise à MySQL, elle passe par plusieurs étapes avant de retourner les résultats :
EXPLAINL'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.
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';
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 |
id (1), indiquant qu'elles font partie de la même requête simple.SIMPLE, ce qui signifie qu'il s'agit d'une requête simple sans sous-requêtes ou unions.