mysql——索引
1. 索引的常见模型 索引可以用于提高读写效率的数据结构很多, 这里介绍三种常见、 也比较简单的数据结构, 它们分别是哈希表、 有序数组和搜索树 1. 哈希表 哈希的思路很简单, 把值放在数组里, 用一个哈希函数把key换算成一个确定的位置, 然后把value放在数组的这个位置。 不可避免地, 多个key值经过哈希函数的换算, 会出现同一个值的情况。 处理这种情况的一种方 法是, 拉出一个链表 。 缺点就是 : 哈希表这种结构适用于只有等值查询的场景, 因为不是有序的, 所以哈希索引做区间查询的速度是很慢的。 2. 有序数组 有序数组在等值查询和范围查询场景中的性能就都非常优秀 , 如果仅仅看查询效率, 有序数组就是最好的数据结构了。 但是, 在需要更新数据的时候就麻烦了, 你往中间插入一个记录就必须得挪动后面所有的记录, 成本太高 缺点 :中间插入一个记录就必须得挪动后面所有的记录, 成本太高 有序数组索引只适用于静态存储引擎, 比如你要保存的是2017年某个城市的所有人口信息, 这类不会再修改的数据 3.搜索树 N叉树由于在读写上的性能优点, 以及适配磁盘的访问模式, 已经被广泛应用在数据库引擎中了 2. InnoDB 的索引模型 在InnoDB中, 表都是根据主键顺序以索引的形式存放的, 这种存储方式的表称为索引组织表。 InnoDB使用了B+树索引模型,