Kardinaliteit in mysql is een schatting , en mysql baseert zijn schatting op tabelgebruiksstatistieken:
U kunt meer lezen over de statistieken die zijn verzameld voor myisam- en innodb-tabelengines in de documentatie van mysql en innodb en hoe u deze kunt configureren:
Alle statistieken worden opgeslagen in de STATISTICS-tabel binnen information_schema.
De indexen, die geschatte kardinaliteit ligt dichter bij hun exacte kardinaliteit (aantal verschillende waarden binnen het veld) zijn langer geleden gemaakt, daarom heeft mysql meer statistieken voor hen verzameld en is de schatting nauwkeuriger. Als u analyse table
. uitvoert in deze specifieke tabel zullen de kardinaliteiten van de dubbele indexen waarschijnlijk veel dichter bij elkaar liggen dan nu.
De grote vraag is, waarom heb je eigenlijk dubbele indexen?