Vous devez utiliser un index composite lorsque vous utilisez des requêtes qui en bénéficient. Un index composite qui ressemble à ceci :
index( column_A, column_B, column_C )
bénéficiera une requête qui utilise ces champs pour joindre, filtrer et parfois sélectionner. Cela profitera également aux requêtes qui utilisent les sous-ensembles de colonnes les plus à gauche dans ce composite. Ainsi, l'index ci-dessus satisfera également les requêtes nécessitant
index( column_A, column_B, column_C )
index( column_A, column_B )
index( column_A )
Mais cela n'aidera pas (du moins pas directement, peut-être que cela peut aider partiellement s'il n'y a pas de meilleurs indices) pour les requêtes qui en ont besoin
index( column_A, column_C )
Remarquez que la colonne_B est manquante.
Dans votre exemple d'origine, un index composite pour deux dimensions bénéficiera principalement aux requêtes qui interrogent les deux dimensions ou la dimension la plus à gauche en elle-même, mais pas la dimension la plus à droite en elle-même. Si vous interrogez toujours deux dimensions, un index composite est la solution, peu importe lequel est le premier (le plus probable).