索引的选择性是指不重复的索引值(也称为基数,cardinality) 和 数据表的记录总数的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。

以下图为例,字段emp_name的索引长度设置为4。如果不设置长度,一旦有大量长字符串元素,会占据大量的空间,而单个Disk的空间是有限的。

就会导致树的层级很高,搜索的IO次数变多,索引性能降低。