众所周知,mysql的数据是通过聚焦索引存储的,聚集索引有且只有一个,默认安装主键Id组织的聚集索引,是一个N叉B+TREE
数据只会存在聚集索引的叶子节点上,支持范围查询等
而 一个表还可以建立普通索引,唯一索引 这些也是 B+TREE的非聚集索引
非聚集索引存储了普通索引字段的值以外还会存储聚集索引主键的值,所以这是为什么主键ID 不适合用长字符串的原因,会产生很大的空间浪费
组合索引有时候可以解决查询不会表的方法 因为一般非聚集索引查询之后 还会根据 非聚集索引上查出来的 主键ID 去 聚集索引上回表查询数据
所以 组合索引有时候可以很好的解决查询sql的优化
网友评论