1、什么是基数(Cardinality)

基数:

列上唯一键(Distinct_key)的数量,例如性别列有两个唯一的键值,男、女,那这一列的基数就是2。  无论有多少行,性别列只有两个唯一值,基数就是2。

主键列的基数就等于总行数。

基数越高,说明这个列重复数据越少;相反基数越低,说明列的重复值越多。

优化中看一个列的基数的同时,也要看这一列的数据分布。

 

2、什么是选择性:

选择性 = 基数 * 总行数    

选择性最大等于100% , 主键列的选择性为100% 

选择性有什么作用:判断这个列适不适合建索引。 选择性约好的列越适合建索引。  当某个列选择性大于20%的时候,这个列就适合建索引。