Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle colonne mettre en premier dans l'index ? Cardinalité supérieure ou inférieure ?

Les recherches d'index composites MySQL doivent avoir lieu dans l'ordre dans lequel les colonnes sont définies dans l'index. Étant donné que vous souhaitez que MySQL puisse faire la distinction entre les enregistrements en effectuant le moins de comparaisons possible, toutes choses étant égales par ailleurs, vous bénéficierez le plus d'un index composite dans lequel les colonnes sont classées de la cardinalité la plus élevée à la plus faible.

Autrement dit, en supposant que les comparaisons doivent éventuellement être effectuées par rapport à la colonne de cardinalité la plus élevée afin de discriminer les enregistrements, pourquoi forcer les comparaisons à avoir lieu d'abord par rapport à la colonne de cardinalité la plus basse alors que cela peut finalement être inutile ?