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.

La vue d'ensemble de ce que le SQL Avancé te permet de faire
DéplacerUPDATE / DELETE / UPSERT avancéGarder correctContraintes / FK / typesOrganiserNormalisation / vues / conceptionLire le planEXPLAIN / stats / jointuresAccélérerConception d'indexprotégerorganisermesureraméliorer
Déplace les données avec le DML avancé, garde-les correctes avec les contraintes, les clés étrangères et les types, organise le schéma avec la conception, et accélère les requêtes avec les plans d'exécution et les index.

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.

Les 11 articles sur l'écriture avancée, les contraintes, les types et la conception
Écriture avancéeDéplacerUPDATE / DELETEapplicationsUPSERTON CONFLICTContraintes / typesGarder correctContraintes / FKchangements de contrainteAffinité de typeSTRICT / datesConceptionOrganiserNormalisation1NF à 3NFVuespratique de conception
Déplace les données avec l'écriture avancée, protège leur exactitude avec les contraintes, les clés étrangères et les types, et organise le schéma avec la normalisation, les vues et la pratique de conception.
CatégorieArticleCe que tu apprends
Écriture avancéeUPDATE / DELETE avec sous-requêtes et JOINMises à jour corrélées, UPDATE … FROM, DELETE avec conditions par sous-requête
Écriture avancéeUPSERT (ON CONFLICT) et applications du bulk INSERTINSERT … ON CONFLICT DO UPDATE, excluded, bulk INSERT
ContraintesContraintes de colonne — NOT NULL / UNIQUE / CHECK / PRIMARY KEYNOT NULL / UNIQUE / CHECK / PRIMARY KEY et violations
Clés étrangèresContraintes de clé étrangère et actions référentiellesREFERENCES, ON DELETE / UPDATE, foreign_keys=ON
Changements de contrainteAjouter/changer des contraintes et redéfinir une tableRajouter des contraintes après coup, la procédure de reconstruction de table
TypesChaînes, nombres, booléens et conversion de type impliciteAffinité de type, conversion implicite, vs types stricts
TypesTypes date/heure et tables STRICTStocker et comparer date/heure, tables STRICT
ConceptionConception de tables et normalisation1NF à 3NF, retirer les colonnes répétitives, schéma à 3 niveaux
ConceptionVues (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égorieArticleCe que tu apprends
Plan d'exécutionLire les plans d'exécutionVocabulaire : SCAN / SEARCH / USE TEMP B-TREE et plus
StatistiquesStatistiques et optimiseurANALYZE, sqlite_stat1, sélectivité et changements de plan
JointuresAlgorithmes de jointure et ordre de jointureBoucles imbriquées, ordre de jointure, index automatiques
IndexIndex — Composite, partiel, expression, UNIQUEIndex composites, partiels, d'expression, UNIQUE avec EXPLAIN
IndexConception d'indexOrdre des colonnes du composite, préfixe gauche, conditions qui utilisent l'index
IndexIndex-Only ScanIndex-only scan, USING COVERING INDEX
IndexIndexer ORDER BY / GROUP BYÉviter USE TEMP B-TREE, indexer les tris et les regroupements
IndexQuand les index ne se déclenchent pasFonctions sur les colonnes, casts implicites, LIKE, OR, et solutions par index d'expression/partiel
RéécrituresRéécritures de requêtes ① IN / EXISTS et décorrélationIN vs EXISTS, retirer la corrélation, semi-jointure / anti-jointure
RéécrituresRéé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.