← Retour à l'accueil

Optimiser vos bases de données avec les INDEX en SQL

Aujourd’hui, on va parler d’un sujet qui peut littéralement transformer vos perfs en base de données : les INDEX en SQL.

Je dis ca parce que je viens de finir quelques sites avec de grosses bases à plusieurs millions de lignes.

C’est un truc qu’on oublie souvent au début, mais qui devient vital dès qu’on commence à manipuler des gros volumes de données. Genre plusieurs milliers, dizaines de milliers, ou carrément des millions de lignes.

Tu veux que tes requêtes SELECT soient plus rapides que l’éclair ?
Tu veux pas que ton serveur MySQL te crie dessus à chaque jointure ?
Bah les index, c’est ta nouvelle meilleure arme ?️

C’est quoi un index SQL ?

Un index, c’est un peu comme la table des matières d’un bouquin.
Au lieu de lire toutes les pages pour trouver ce que tu veux (ce que fait une requête sans index), tu vas direct à la bonne page.

En gros, l’index te permet de retrouver une ou plusieurs lignes beaucoup plus rapidement en évitant de scanner toute la table.

Pourquoi utiliser des index ?

Voici les cas où un index te sauve la mise :

Exemple concret

Imagine une table utilisateurs avec 2 millions d’entrées.

SELECT * FROM utilisateurs WHERE email = 'bob@example.com';

Sans index sur email, MySQL va scanner chaque ligne une par une ?
Avec un index sur email, MySQL saute direct à la bonne ligne ?

CREATE INDEX idx_email ON utilisateurs(email);

Et bam, requête optimisée ?

Index simple vs index composé

⚠️ L’ordre compte ! L’index (nom, prenom) sera utilisé si tu filtres sur nom ou nom + prenom, pas juste sur prenom.

Ce que les index ne font pas

Bien utiliser les index : bonnes pratiques

Nettoyage d’index

Supprime les index inutilisés :

DROP INDEX idx_email ON utilisateurs;

Et liste-les avec :

SHOW INDEX FROM utilisateurs;

En résumé

Avantages Inconvénients
Requêtes SELECT beaucoup plus rapides INSERT, UPDATE, DELETE plus lents
Indispensable sur les grosses bases Utilise de l’espace disque
Optimise JOIN, ORDER BY, GROUP BY Ne fonctionne pas avec %valeur

Les index, c’est LE truc qui a changé ma vie de dev backend quand j’ai bossé avec des grosses bases clients.
Sans eux, je galérais avec des requêtes lentes. Avec eux, ça vole.
Pense index. Pense performance. Pense long terme.

#développement web #SQL
← Retour à l'accueil