SQL — JOIN & INDEX
Les notions de JOIN et d’INDEX sont essentielles pour comprendre comment interroger efficacement une base de données.
INNER JOIN
Définition
INNER JOIN retourne uniquement les lignes présentes dans les deux tables.
Exemple
SELECT *
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
Résultat :
- seulement les utilisateurs qui ont des commandes
À retenir
- intersection entre tables
- ignore les lignes sans correspondance
LEFT JOIN
Définition
LEFT JOIN retourne :
toutes les lignes de la table de gauche + les correspondances si elles existent
Exemple
SELECT *
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
Résultat :
- tous les utilisateurs
- même ceux sans commandes
Différence clé
| JOIN | Résultat |
|---|---|
| INNER JOIN | intersection |
| LEFT JOIN | tout + correspondances |
INDEX
Définition
Un index est une structure qui permet d’accélérer les recherches.
Exemple
CREATE INDEX idx_user_id ON users(id);
⚡ Sans index
- scan complet de la table
- lent sur grandes données
⚡ Avec index
- accès direct aux données
- beaucoup plus rapide
Pièges fréquents
- index inutile sur petite table
- index sur colonne peu utilisée
- trop d’index → ralentit les écritures
Quand utiliser un index
- grandes tables
- colonnes souvent utilisées dans WHERE / JOIN
- identifiants (
id,user_id)
Questions classiques
Q1
INNER JOIN retourne quoi ? intersection
Q2
LEFT JOIN retourne quoi ? toutes les lignes de gauche
Q3
À quoi sert un index ? accélérer les requêtes
Q4
Index sur petite table utile ? non
À retenir
- INNER JOIN = intersection
- LEFT JOIN = toutes les lignes de gauche
- index = performance
- éviter les full table scans
🧾 En résumé
- JOIN permet de combiner des tables
- INDEX améliore la performance
- bien les utiliser évite des problèmes de latence
Ces concepts sont essentiels pour écrire des requêtes efficaces.