辅助索引

  1: 提取索引列的所有值进行排序

  2: 将已经排序的值,均匀的存放在叶子节点,进一步生成枝节点和根节点

  3: 在叶子节点中的值,都会存储对应的主键ID

聚合索引

  1: mysql会自动选择主键作为聚集索引列,没有主键会选择唯一键,如果都没有会生成隐藏的,但效率没有主键高

  2: mysql存储数据时,会按照聚集索引列进行有序的存储数据行

  3: 聚集索引直接将原表数据页作为叶子节点,然后提取聚集索引列向上生成枝节点和根节点

辅助索引和聚集索引的区别

  1: 表中任何一个字段都可以作为辅助索引列,在你有需要的时候,只要名字不同即可

  2: 在一张表中,聚集索引只能有一个,一般时主键

  3: 辅助索引,叶子节点只存储列的有序值+聚集索引列值

  4: 聚集索引,叶子节点存储的是有序的整行数据

------------------------------------------------------------------------------------------------------------------------------------------

索引数高度

  索引数高度越低越好,一般维持在3-4层最佳

数据行较多

  分表: parttion 用的比较少了

  分片,分布式架构

字段长度

  业务允许尽量选择字符长度短的列作为索引列

  业务不允许采用前缀索引

数据类型

  char和varchar

  

 

索引排名

  index < range < ref < eq_ref < const(system) < null