深究索引:Mysql索引模型及其不同结构优劣势

举报
知识浅谈 发表于 2022/08/29 09:00:12 2022/08/29
【摘要】 深究索引:Mysql索引模型及其不同结构优劣势

在这里插入图片描述

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 联系方式vx:zsqtcc

深究索引:Mysql有什么索引,索引模型是什么总结
🤞这次都给他拿下🤞

正菜来了⛳⛳⛳

🎈Mysql有什么索引,索引模型是什么总结

Mysql常见的索引有如下几种
📐hash结构:如果采用数组加链表的结构存储,先对字段进行hash,找到对应的位置,查看是否有冲突,没有冲突填到对应的位置,有冲突填到对应位置的链表上。
📐红黑树结构:是一个趋于平衡的二叉树结构,其根节点和空叶节点是黑色,且根节点,到每一个叶子节点经过的黑色节点个数相同。
📐B树结构:是一个多叉树的结构,索引和元数据存储在一起,每个节点是一个页。
📐B+树结构:是一个多叉树结构,和B树的区别就是元数据都存储在叶子节点,而非叶子节点存储的都是索引数据和指针数据。

🎈为什么innodb中选用B+树

  1. 相比于hash结构,虽然在等值查询的时候hash会很快,但是如果数据多了hash冲突问题就上来了,另外hash也仅仅支持等值查询,不支持范围查询。
  2. 相比于红黑树结构,因为红黑树是一个趋于平衡二叉树的结构,相同的数据在B+树上和红黑树上存储,显然红黑树的层数要高,层数高,查询的时候要经过的IO次数多,效率就低。
  3. 相比于B树结构,B+树的结构和B树就差在非叶子节点是否有数据,因为B树的非叶子节点存储有数据,则其存储的指针和索引数据就少,相同数据,其层数就高于B+树,IO次数多,另外,B+树叶子节点之间有双向指针,便于进行范围查询。

🍚总结

以上就是关于Mysql索引模型及其不同结构优劣势的简单总结,希望有所帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。