Récapitulatif SQL Avancé — Contraintes, conception et tuning en un coup d'œil
Une synthèse de la série SQL Avancé. Recoupe l'UPDATE/DELETE avancé et l'UPSERT, les contraintes et clés étrangères, l'affinité de type et STRICT, la normalisation et les vues, et la conception d'index et le tuning à partir d'EXPLAIN QUERY PLAN — avec des schémas et un index des articles.
La vue d'ensemble de ce que tu as appris en SQL Avancé
Cette page rassemble la série SQL Avancé sur une seule page, vue à travers trois angles : les contraintes et la conception qui gardent les données sûres, un schéma lisible et correct, et les index et le tuning pour des requêtes rapides.
Après avoir acquis la syntaxe dans les Bases et l'agrégation, les jointures et les fonctions de fenêtrage dans la série Intermédiaire, l'Avancé portait sur garder les données correctes et les faire tourner vite — conception et tuning.
Utilise les liens vers chaque article pour y revenir et réviser à tout moment.
Garder les données correctes — écriture avancée, contraintes, clés étrangères, types, conception
On a couvert l'UPDATE / DELETE avancé et l'UPSERT avec sous-requêtes et jointures, les contraintes de colonne et les clés étrangères, l'affinité de type et STRICT, puis la normalisation, les vues et la pratique de conception.
Le schéma ci-dessous regroupe le DML avancé et les contraintes/types ensemble, et la conception/les vues ensemble.
| Catégorie | Article | Ce que tu apprends |
|---|---|---|
| Écriture avancée | UPDATE / DELETE avec sous-requêtes et JOIN | Mises à jour corrélées, UPDATE … FROM, DELETE avec conditions par sous-requête |
| Écriture avancée | UPSERT (ON CONFLICT) et applications du bulk INSERT | INSERT … ON CONFLICT DO UPDATE, excluded, bulk INSERT |
| Contraintes | Contraintes de colonne — NOT NULL / UNIQUE / CHECK / PRIMARY KEY | NOT NULL / UNIQUE / CHECK / PRIMARY KEY et violations |
| Clés étrangères | Contraintes de clé étrangère et actions référentielles | REFERENCES, ON DELETE / UPDATE, foreign_keys=ON |
| Changements de contrainte | Ajouter/changer des contraintes et redéfinir une table | Rajouter des contraintes après coup, la procédure de reconstruction de table |
| Types | Chaînes, nombres, booléens et conversion de type implicite | Affinité de type, conversion implicite, vs types stricts |
| Types | Types date/heure et tables STRICT | Stocker et comparer date/heure, tables STRICT |
| Conception | Conception de tables et normalisation | 1NF à 3NF, retirer les colonnes répétitives, schéma à 3 niveaux |
| Conception | Vues (VIEW) | CREATE VIEW, utiliser les vues, vues modifiables |
Rendre les requêtes rapides — plans d'exécution, index, tuning
Lis les plans avec EXPLAIN QUERY PLAN, comprends les statistiques, l'optimiseur et les algorithmes de jointure, prends en main la conception d'index, les index-only scans, l'indexation pour les tris et les regroupements, et les motifs où les index ne se déclenchent pas, puis termine par les réécritures de requêtes.
Le tableau ci-dessous organise chaque article.
| Catégorie | Article | Ce que tu apprends |
|---|---|---|
| Plan d'exécution | Lire les plans d'exécution | Vocabulaire : SCAN / SEARCH / USE TEMP B-TREE et plus |
| Statistiques | Statistiques et optimiseur | ANALYZE, sqlite_stat1, sélectivité et changements de plan |
| Jointures | Algorithmes de jointure et ordre de jointure | Boucles imbriquées, ordre de jointure, index automatiques |
| Index | Index — Composite, partiel, expression, UNIQUE | Index composites, partiels, d'expression, UNIQUE avec EXPLAIN |
| Index | Conception d'index | Ordre des colonnes du composite, préfixe gauche, conditions qui utilisent l'index |
| Index | Index-Only Scan | Index-only scan, USING COVERING INDEX |
| Index | Indexer ORDER BY / GROUP BY | Éviter USE TEMP B-TREE, indexer les tris et les regroupements |
| Index | Quand les index ne se déclenchent pas | Fonctions sur les colonnes, casts implicites, LIKE, OR, et solutions par index d'expression/partiel |
| Réécritures | Réécritures de requêtes ① IN / EXISTS et décorrélation | IN vs EXISTS, retirer la corrélation, semi-jointure / anti-jointure |
| Réécritures | Réécritures de requêtes ② éliminer le travail répété, exemples pratiques | Éliminer le travail répété, optimisation de sous-requêtes avec exemples |
Beau travail !
À ce stade tu as rassemblé l'UPDATE / DELETE avancé et l'UPSERT, le côté conception avec les contraintes, les clés étrangères, les types, la normalisation et les vues, et le côté tuning avec la conception d'index et plus, à partir d'EXPLAIN QUERY PLAN.
Cela marque aussi la fin des trois niveaux du cours SQL — Bases, Intermédiaire et Avancé.
Bravo d'être allé jusqu'au bout.
Reviens à n'importe quel article qui a retenu ton attention et continue à expérimenter avec tes propres données.