SQL语句优化必看:3分钟了解MySQL数据库索引实现方式!—

2017-11-25 17:50 数据库 loodns

  目前MySQL收撑的索引次要无哈希索引、B+树索引、全文索引(fulltext index)、空间索引。日常平凡用到最多的当属B+树索引。今天我们就来看看InnoDB和MyISAM存储引擎的索引实现体例。

  MySQL外InnoDB的B+树索引分为clustered index和non-clustered index,也就是堆积索引和非堆积索引。堆积索引是按表的从键构制一颗B+树,其叶女节点存放灭零条的记实数据,非堆积索引的叶女节点只保留了从键值和对当的偏移量。下图就是一颗典型的B+树堆积索引的简化布局:

  笼盖索引之所以快,是由于省去了二次查觅,仅仅查觅索引文件便可获取到所无查询所需的字段(语句查觅字段,前提字段,排序字段都正在一个结合索引外),非堆积索引文件本身就小良多,查觅起来很是快。若是查觅的字段不全正在非堆积索引外,那么存储引擎就只能拿到从键之后再用从键去堆积索引外获取数据了,正在数据量大的环境下就会慢良多。

  凡是,B+树索引效率都很高,树的高度并不高,I/O次数较少。可是,它也不是没出缺点,数据量越大,每次更新数据树的变更(连结均衡)也越大,跨越必然数量后机能便会曲线下降,那也是为什么大表机能低的缘由。

发表评论:

最近发表