Préface — Pourquoi les développeurs doivent utiliser des index
Anatomie d'un index — À quoi ressemble un index ?
Les nœuds feuilles — Une liste doublement liée
Le B-Tree — C'est un arbre balancé
Index lents, partie I — Deux ingrédients rendent les index lents
La clause Where — Indexer pour améliorer les performances en recherche
L'opérateur d'égalité — Recherche de la clé exacte
Clés primaires — Vérifier l'utilisation des index
Clés concaténées — Index multi-colonnes
Index lents, Partie II — Le premier ingrédient, revisité
Fonctions — Utiliser des fonctions dans la clause
where
Recherche insensible à la casse —
UPPER
etLOWER
Fonctions définies par l'utilisateur — Limitations des index utilisant une fonction
Sur-indexation — Éviter la redondance
Variables liées — Pour la sécurité et les performances
Rechercher un intervalle — Beyond equality
Plus grand, plus petit et
BETWEEN
— L'ordre des colonne importe encore plusIndexer des filtres
LIKE
—LIKE
n'est pas pour la recherche plein texteCombinaison d'index — Pourquoi ne pas utiliser un index pour chaque colonne ?
Index partiels — Indexer les lignes sélectionnées
NULL
dans la base de données Oracle — Une curiosité importanteNULL
dans les index — Chaque index est un index partielContraintes
NOT NULL
— affecte l'utilisation des indexÉmuler des index partiels — utiliser une indexation basée sur les fonctions
Conditions cachées — mauvaises utilisations standards
Dates — Faites particulièrement attention aux types
DATE
Chaînes numériques — Ne mélangez pas les types
Combiner des colonnes — utiliser des clauses
where
redondantesLogique intelligente — Une façon intelligente de rendre le SQL lent
Mathématique — les bases de données ne résolvent pas les équations
Tests et scalabilité — À propos du matériel
Volume de données — Le retour de la mauvaise indexation
Charge système — La charge de la production affecte les temps de réponse
Temps de réponse et bande passante — Scalabilité horizontale
L'opération de jointure — Rapide, si fait correctement
Boucles imbriquées — À propos du problème des sélections N+1 dans les ORM
Jointure de hachage — Requiert une approche complètement différente de l'indexation
Jointure par tri — Comme une fermeture éclaire sur deux ensembles triés
Regrouper les données — Pour réduire les entrées/sorties disques
Les prédicats des filtres pour index utilisés intentionellement — pour améliorer
LIKE
Parcours d'index couvrants — Éviter l'accès aux tables
Table organisée comme un index — Index regroupé sans les tables
Trier et grouper —
order by
sérialisé : une troisième puissance« Order By » indexé — interactions de la clause
where
ASC
/DESC
etNULL FIRST
/LAST
— changer l'ordre de l'index« Group By » indexé — Envoyer les données dans
group by
Résultats partiels — Paginer efficacement
Sélectionner les N premières lignes — si vous avez seulement besoin des quelques premières lignes
Récupérer la page suivante — Comparaison des méthodes de décalage et de recherche
Fonctions de fenêtrage — Pagination utilisant des requêtes analytiques
Insertion, suppression et mise à jour — Impacts de l'indexation sur les requêtes DML
Plans d'exécution — Récupérer et lire les plans d'exécution
Liste des mythes — Légendes habituelles
Schéma des exemples — Scripts
CREATE
etINSERT
DB2 • MySQL • Oracle • PostgreSQL • SQL Server