mysql面试高频问题---索引😄
1.mysql面试高频问题---慢查询如何定位和优化⬆️2.mysql面试高频问题---如何定位慢查询⌚️
3.mysql面试高频问题---索引😄
4.mysql面试高频问题---聚簇索引与非聚簇索引😊5.mysql面试高频问题---覆盖索引🧻6.mysql面试高频问题---索引创建的原则📖7.mysql面试高频问题---什么情况下索引会失效❎8.mysql面试高频问题---sql优化的经验😮9.mysql面试高频问题---事务的特性😅10.mysql面试高频问题---并发事务📚11.mysql面试高频问题---undo log和redo log的区别🙉12.mysql面试高频问题---事务-MVCC多版本并发控制(难)🚬13.mysql面试高频问题---mysql主从同步原理☀️14.mysql面试高频问题---mysql分库分表👿索引
1. 问题?什么是索引
索引(index) 是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),
这些数据结构以某种方式引用 (指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
维护树的数据结构,提高查找效率,减少IO的操作
B+树、二叉树、红黑树、B树
2. 数据结构对比
MySQL默认使用的索引底层数据结构是B+树。再聊B+树之前,我们先聊聊二叉树和B树
B-Tree,B树是一种多叉路衡查找树,相对于二叉树,B树每个节点可以有多个分支,即多叉。
以一颗最大度数(max-degree)为5(5阶)的b-tree为例,那这个B树每个节点最多存储4个key
B+Tree是在BTree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构
B树与B+树对比:
- 磁盘读写代价B+树更低(非叶子节点不存储数据);
- 查询效率B+树更加稳定(数据都存储在叶子节点);
- B+树便于扫库和区间查询(叶子节点之间使用的双向指针)
3. 问题总结
4. 问答
本文来自博客园,作者:xiaolifc,转载请注明原文链接:https://www.cnblogs.com/xiaolibiji/p/18027697
合集:
mysql面试题
分类:
八股文 / mysql面试题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通