索引,先归纳下,种类。
主键索引,普通索引,联合索引,全文索引。
主键索引,又是唯一索引,聚簇索引(一个key带着一整条记录)。能用主键尽量用主键。面对多次查找。浪费复杂度。
普通索引,没啥特别,就一颗树。或者其他数据结构。当前索引值作为key,带着其他索引。那key的长度就是当前key的长度,空间考虑。能短尽量短。设计的好。无需再次回头查找主键索引的树。查联合即可。比如select id 那联合就搞定了
联合索引,也就是组合索引,他的出现会带来几个好处。
从左边开始匹配。可第一个模糊匹配,第二个,直接限制。联合限制。那在第一次树的查询就把符合条件的记录狠狠的锁定很少的记录,到主键那查询。
索引的实现。
索引的数据结构有树,有序数组,哈希。
数据查询不外呼就是直接匹配和模糊查询。b树非常合适。哈希适合直接定位。有序数组也合适,但是他不适合新增与删除。
新增要改变很多。删除也是。树有裂变和合并。树的层级节点个数就是读取页的大小限制的。
索引越多维护也是很麻烦。