Indexing (B-tree, Hash, Composite)
DevOps 🟡 MidDefinition
Structures de données accélérant les recherches en base. B-tree pour les ranges, Hash pour l'égalité, Composite pour les requêtes multi-colonnes.
Analogie
L'index d'un livre : au lieu de lire toutes les pages, tu vas directement au bon chapitre.
Exemple de code
-- B-tree (par défaut, ranges)
CREATE INDEX idx_users_email ON users(email);
-- Composite
CREATE INDEX idx_orders_user_date
ON orders(user_id, created_at);
-- Covering
CREATE INDEX idx_cover ON orders(user_id)
INCLUDE (total, status);
Cas d'usage
Passer une requête de 2 secondes à 2 millisecondes sur une table de millions de lignes.
Anti-pattern
Indexer toutes les colonnes : ralentit les écritures et gaspille de l'espace.