Liczność w mysql jest szacowaniem , a mysql opiera swoje oszacowanie na statystykach użycia tabeli:
Możesz przeczytać więcej o statystykach zbieranych dla silników tabel myisam i innodb w dokumentacji mysql i innodb oraz o tym, jak je skonfigurować:
Wszystkie statystyki są przechowywane w tabeli STATYSTYKI w schemacie_informacji.
Indeksy, te oszacowane kardynalność są bliższe ich dokładnej kardynalności (liczba odrębnych wartości w polu) zostały utworzone dawno temu, dlatego mysql zebrał dla nich więcej statystyk i jego oszacowanie jest dokładniejsze. Jeśli uruchomisz analyse table
na tej konkretnej tabeli prawdopodobnie moce zduplikowanych indeksów będą znacznie bliższe sobie niż teraz.
Ogromne pytanie brzmi, dlaczego w ogóle masz zduplikowane indeksy?