1. 采用整个字符串作为索引. 在查询操作时, 执行顺序是怎样的?

    从索引树找到对应索引,取出主键id;根据主键id回表查询所需字段放入结果集;继续循环查找。

    1. 采用部分字段做索引, 在查询操作时, 执行顺序是怎样的?

    从索引树找到符合对应前缀的索引,取出主键id;根据主键id回表查询判断条件是否满足,满足则放入结果集; 继续循环查找。

    1. 使用什么语句可以分析不同长度前缀的索引区分度是多少?

    select count(distinct(field_nam, n)) as L from table;
    select count(distinct(left(field_nam, n))) as Ln from table;

    1. 前缀索引相比较整个字段做索引有什么优势和劣势?

    优势:占用空间小、查询快
    劣势:因为只有前缀,需要查询拿到完整字段才能判断是否符合条件,可能造成查询语句读数据次数变多;
    也因此无法使用覆盖索引。

    1. 采用反序存储和hash字段作为索引有什么异同点?

    异:反序存储是将字段反序后存储,提高索引的区分度,减少索引的占用空间,提高查询效率。
    hash是额外增加一个字段存储hash值,来提高索引的区分度,减少索引的占用空间,提高查询效率。
    同:都是在等值查询中,用来解决索引区分度不够的问题的,目的是一样的。