索引在存储引擎层,不同存储引擎索引工作方式不一样。InnoDB引擎最常使用的是B-Tree索引,实际上是B+Tree数据结构,其相较于B-Tree结构不同的是,B+Tree每个叶子节点都包含一个指向下一个叶子节点的指针。MyISAM使用前缀压缩技术使得索引更小,并使用数据的物理位置引用被索引的行;InnoDB按照原数据格式存储索引的列值,并根据主键引用被索引的行。如果索引列包含order by子句中列,且列顺序一致,则该索引可以用于排序。
独立的列是指索引列不能是表达式的一部分,也不能是函数的参数
如果索引列是很长的字符列,则索引会变得大且慢。可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但是这样会降低索引的选择性,索引的选择性是指,不重复的索引值和数据表的记录总数的比值。索引的选择性越高则查询效率越高,因为选择性高的索引可以在查找时过滤掉更多的行。
原文:https://www.cnblogs.com/the-zhengdx/p/14940534.html