Index on Mysql column has lower cardinality than c

2019-09-11 08:12发布

问题:

I have a varchar(50) field named token. When I do

count(distinct token) from table 

I get ~ 400k. However, if I do

create index idx on table (token)

The cardinality is only 200. What could be going on here? Shouldn't cardinality be the same as the number of distinct tokens?

回答1:

The cardinality is an estimate of the number of unique values in the index. According to the documentation:

Cardinality is counted based on statistics stored as integers, so the value is not necessarily exact even for small tables.