索引—学习笔记

目录

1.索引是什么:索引是帮助MySQL高效获取数据的排好序的数据结构

2.索引未采用数据结构

3.索引的数据结构

3.MyISAM存储结构

4.InnoDB存储结构

5.联合索引底层数据结构


1.索引是什么:索引是帮助MySQL高效获取数据的排好序的数据结构

2.索引未采用数据结构

1.二叉树(没有采用)原因:二叉树存在单边增长,树的高度高,效率低

2.红黑树(没有采用)原因:红黑树高度原因,效率也很低

3.hash表(没有采用)原因:不能实现范围查找,hash值没办法支持排序,组合索引会将几个字段合并hash,没办法支持部分索引,hash冲突的概率也会非常大。

哈希索引基于哈希表实现,只有精确索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希存储在索引中,同时在哈希表中保存指向每个数据的指针。

哈希索引中存储的是:哈希值+数据行指针 

4.B-Tree(没有采用)原因:范围查询效率低如图

当查询大于5的元素时,当找到5后,因此要找,7,9,11,13,14,不得不从根节点遍历,所以效率低。

3.索引的数据结构

B+Tree(B-Tree变种)

※非叶子节点不存储data,只存储索引,可以放下更多索引

※顺序访问指针,提高区间访问的性能

3.MyISAM存储结构

索引文件和数据文件分离的

4.InnoDB存储结构

主键采用整型自增可以降低,添加元素时维护B+的概率,维护B+会很耗时

5.联合索引底层数据结构

先根据第一个字段排序,第一个字段相同按照第二个字段排序,以此类推。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值