Aller au contenu

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.


Voir aussi