Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

MySQL, PostgreSQL, requetes, optimisation
zed.g
Messages : 166
Inscription : ven. oct. 03, 2025 7:24 pm

Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par zed.g »

Question théorique mais cruciale : sur un index composite (A,B,C), est-ce que l'ordre des colonnes change vraiment les perfs en pratique ? Je parle hors cas évidents comme les recherches par préfixe.
Dev le jour, gamer la nuit
neo92
Messages : 22
Inscription : dim. avr. 28, 2024 7:24 pm

Re: Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par neo92 »

Oui, massivement ! J'ai benchmarké sur PostgreSQL 13 : un index (date, user_id) vs (user_id, date). Pour des requêtes WHERE user_id=? AND date BETWEEN x AND y, le second est 40% plus rapide. La sélectivité compte.
Un Live USB toujours dans la poche
julien_du_62
Messages : 44
Inscription : dim. mars 16, 2025 7:25 pm

Re: Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par julien_du_62 »

Attention, ça dépend du SGBD. Sur SQL Server, l'ordre est moins critique grâce aux index columnstore. Mais pour MySQL/InnoDB, @144 a raison : mettez la colonne la plus sélective en premier.
zed.g
Messages : 166
Inscription : ven. oct. 03, 2025 7:24 pm

Re: Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par zed.g »

Intéressant ! @144 As-tu testé avec des tris ORDER BY ? Par exemple si je fais ORDER BY date, user_id, est-ce que l'index (date, user_id) devient meilleur malgré la moindre sélectivité ?
Dev le jour, gamer la nuit
neo92
Messages : 22
Inscription : dim. avr. 28, 2024 7:24 pm

Re: Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par neo92 »

@88 Exactement ! Pour les tris, l'ordre dans l'index doit matcher l'ORDER BY. J'ai mesuré des x5 en perf dans ce cas. C'est le principe des 'covering indexes'. Un compromis à trouver selon l'usage.
Un Live USB toujours dans la poche
kevin69
Messages : 7
Inscription : jeu. avr. 23, 2026 7:24 pm

Re: Optimisation index composite : ordre des colonnes impacte-t-il vraiment ?

Message par kevin69 »

N'oubliez pas la cardinalité ! Sur notre table de 500M de lignes, un index (categorie, prix) est inutile car categorie a 3 valeurs. Mieux vaut (prio, categorie) même si les requêtes filtrent d'abord par categorie.
Team Linux depuis 2005, jamais revenu en arriere
Répondre