问题
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.
来源:https://stackoverflow.com/questions/29441260/index-on-mysql-column-has-lower-cardinality-than-count-distinct