哈希(hash)比树(tree)更快,索引结构为什么要设计成树型
加速查找速度的数据结构,常见的有两类:
(1)哈希,例如HashMap,查询/插入/修改/删除的平均时间复杂度都是O(1);
(2)树,例如平衡二叉搜索树,查询/插入/修改/删除的平均时间复杂度都是O(lg(n));
哈希只能满足等值查询, 不满足范围和大小查询, 其次哈希不可以排序.
Mysql是用等值查询,用树的话,等值查询只需要顺序遍历即可.
但是对于排序查询的sql需求:分组:group by
,排序:order by
,比较:<、>
等,哈希型的索引,时间复杂度会退化为O(n),而树型的“有序”特性,依然能够保持O(log(n)) 的高效率。