基数又叫索引基数,是数据列所包含的不同值的数量。
例如,某个数据列包含值1、3、7、4、7、3,那么它的基数就是4。
索引基数越大,工作效率越好。
如果某个索引所在的数据列含有很多不同年龄,索引会快速分辨数据行。
如果某个索引所在的数据列只记录性别(man或者woman),那么索引的用处就不大。
如果值出现的机率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。在这些情况下,最好不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一半会忽略索引,进行全表扫描。惯用的百分比界限是30%。(匹配的数据量超过一定限制的时候查询器会放弃使用索引。尽量不使用会导致索引失效的条件,比如in,用exists子查询代替,或者in的条件少时可以用union all代替)