πPrêtTech← Toutes les fiches
Backend · DONNÉES

SQL et modélisation : l'essentiel

Les questions base de données vérifient que tu sais lire une requête, comprendre pourquoi elle est lente et modéliser proprement.

À retenir
  • INNER JOIN garde l'intersection, LEFT JOIN garde tout à gauche.
  • Un index accélère la lecture et ralentit l'écriture.
  • Une transaction est atomique : tout ou rien.
  • Normaliser d'abord, dénormaliser seulement pour une raison mesurée.
  • N+1 : le bug de performance le plus courant.

Lire un plan d'exécution

Un « seq scan » sur une grosse table signale souvent un index manquant sur la colonne filtrée ou jointe.

Agrégations

GROUP BY regroupe, HAVING filtre après agrégation, WHERE filtre avant. C'est une question classique.

SELECT u.id, COUNT(c.id) AS commandes
FROM utilisateurs u
LEFT JOIN commandes c ON c.user_id = u.id
GROUP BY u.id
HAVING COUNT(c.id) > 3;

Éviter le N+1

Charger une liste puis faire une requête par élément écroule les performances. Utilise une jointure ou un chargement groupé.

Pièges fréquents

  • Indexer toutes les colonnes.
  • Confondre WHERE et HAVING.
  • Oublier les transactions sur des écritures liées.

Questions que le recruteur peut poser

  • Pourquoi cette requête est-elle lente ?
  • Quand dénormaliser ?
  • Comment modéliserais-tu cette relation ?