Mysql
 sql >> Database >  >> RDS >> Mysql

Quale colonna mettere per prima nell'indice? Cardinalità maggiore o minore?

Le ricerche nell'indice composito MySQL devono essere eseguite nell'ordine in cui le colonne sono definite all'interno dell'indice. Dal momento che vuoi che MySQL sia in grado di discriminare tra i record eseguendo il minor numero di confronti possibile, a parità di tutte le altre cose trarrai il massimo vantaggio da un indice composito in cui le colonne sono ordinate dalla cardinalità più alta a quella più bassa.

Cioè, supponendo che i confronti debbano essere eseguiti alla fine con la colonna con la cardinalità più alta per discriminare i record, perché forzare i confronti prima che avvengano con la colonna con la cardinalità più bassa quando alla fine ciò potrebbe non essere necessario?