版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySQL索引高频面试题及详细答案(实战版)一、索引基础概念(初级必问)1、什么是MySQL索引?索引的本质是什么?答案:索引是数据库中用于快速检索数据的数据结构,可以理解为数据表的目录。它的核心本质是通过空间换时间:额外占用磁盘存储空间,记录字段的数值与数据行地址的映射关系,避免查询数据时全表扫描,大幅提升查询效率。同时索引会轻微降低写入、更新、删除效率,因为数据变更时,对应的索引结构也需要同步维护。2、索引的优缺点分别是什么?答案:优点:大幅降低数据查询的IO次数,提升SELECT查询效率;通过唯一索引约束,保证字段数据唯一性;排序、分组查询可利用索引有序特性,避免文件排序(filesort)和临时表。缺点:占用磁盘空间,索引数据会单独存储;增加DML操作成本,INSERT、UPDATE、DELETE时需要更新索引结构;不合理的索引会导致查询失效、索引失效、性能下降。3、MySQL常用的索引类型有哪些?各自区别?答案:按索引功能分类,常用类型如下:普通索引:最基础的索引,无唯一性约束,仅用于加速查询,允许字段重复、为空。唯一索引:字段值必须唯一,允许为空(只能一个null),既能加速查询,又能做唯一性校验。主键索引:特殊的唯一索引,不允许为空、不允许重复,一张表只能有一个主键,InnoDB中主键是聚簇索引。联合索引(复合索引):对多个字段建立的索引,遵循最左匹配原则,日常业务使用最多。全文索引:针对文本类型字段(varchar、text),用于模糊长文本检索,替代低效的like%xxx%。4、聚簇索引和非聚簇索引的核心区别?(InnoDB核心考点)答案:InnoDB存储引擎独有聚簇索引概念,MyISAM全部为非聚簇索引。聚簇索引:索引和真实数据存储在同一个叶子节点;表的主键就是聚簇索引,一张表只有一个聚簇索引;主键查询效率最高,直接命中完整行数据。非聚簇索引(二级索引/辅助索引):索引叶子节点只存储「索引字段值+主键值」,不存储完整数据;查询时先通过二级索引找到主键,再通过主键回表查询完整数据,这个过程叫回表;一张表可以有多个非聚簇索引。二、索引底层原理(中级高频)1、为什么MySQL索引用B+树,不用B树、二叉树、哈希表?答案:1.不用二叉树/红黑树:树的高度太高,数据量大时层级过多,磁盘IO次数多,查询效率低。2.不用B树:B树的非叶子节点也存储数据,单个节点存储的索引数量少,树高度更高;且B树无法支持范围查询快速遍历。3.不用哈希索引:哈希是等值匹配,不支持范围查询、排序、分组;存在哈希冲突,数据量大时性能不稳定;不支持最左匹配原则。B+树优势:所有数据都在叶子节点,非叶子节点只存索引键,节点存储索引更多,树层级极低(通常2-3层),IO次数少;叶子节点是有序双向链表,完美支持等值、范围、排序、分页查询;查询性能稳定,所有数据查询层级一致。2、什么是回表?什么是覆盖索引?答案:回表:通过二级索引查询时,叶子节点只有索引字段和主键,需要拿着主键去聚簇索引中查询完整行数据,这个二次查询的过程就是回表,会增加IO开销。覆盖索引:查询的所有字段都包含在索引中,无需回表,直接通过二级索引就能拿到全部数据。例:建立联合索引(a,b,c),查询语句selecta,bfromtwherea=1andb=2,就是覆盖索引,性能最优。3、联合索引的最左匹配原则是什么?答案:联合索引遵循最左前缀匹配,索引生效的前提是匹配索引的最左连续字段。例如索引(a,b,c):wherea=1、wherea=1andb=1、wherea=1andb=1andc=1→索引全部生效;whereb=1、wherec=1、whereb=1andc=1→索引完全失效;wherea=1andc=1→a字段索引生效,c字段失效,断裂后右侧索引不生效。核心:从最左开始,连续匹配,一旦中断,后续索引失效。三、索引失效场景(面试重中之重)1、列举常见的MySQL索引失效场景答案:日常开发中高频失效场景如下:违背最左匹配原则:联合索引跳过左侧字段,直接使用右侧字段查询;索引列参与运算、函数操作:如whereleft(name,2)='xx'、whereage+1=18;隐式类型转换:字符串字段用数字查询、数字字段用字符串查询,会自动转换导致索引失效;使用!=、<>、notin、notexists:会导致索引失效走全表扫描;like%前缀模糊查询:like'%xxx'、like'%xxx%'索引失效,like'xxx%'生效;or连接非索引字段:or前后只要有一个字段无索引,整体索引失效;MySQL优化器判断全表扫描更快:比如数据量极少、索引选择性极低(字段大部分数据重复)。2、为什么like%xxx%会索引失效,likexxx%不会?答案:B+树索引的叶子节点是按索引字段前缀有序排列的。like'xxx%'是前缀匹配,可以利用索引的有序性快速定位数据,索引生效;like'%xxx'/'%xxx%'是后缀匹配、全模糊匹配,无法通过前缀有序性检索,只能遍历所有数据匹配,因此索引失效,走全表扫描。3、什么是索引选择性?对索引有什么影响?答案:索引选择性=字段唯一值数量/总数据量。选择性越高,索引价值越大。比如性别、状态字段,值只有2-3种,选择性极低。即使建立索引,MySQL优化器也会放弃索引走全表扫描,因为遍历索引的开销比全表扫描更大。核心结论:低选择性字段不建议建索引。四、索引优化实战(高阶面试题)1、平时开发中如何合理设计索引?答案:遵循实战5大原则:高频查询优先:给WHERE、JOIN、ORDERBY、GROUPBY的高频字段建索引;高选择性优先:优先给唯一值多的字段建索引,避开状态、性别等低选择性字段;联合索引遵循最左原则:区分度高、高频前置的字段放前面;尽量使用覆盖索引:减少回表操作,提升查询性能;控制索引数量:单表索引不宜过多,避免写入性能过低,无用索引及时删除。2、ORDERBY为什么有时候会走filesort?如何避免?答案:当排序字段没有建立索引,或者不满足索引有序匹配时,MySQL无法利用索引排序,会在内存/磁盘中进行文件排序,就是filesort。避免方案:排序字段建立联合索引,WHERE条件和ORDERBY字段遵循最左匹配;保证索引有序性匹配,避免排序字段断裂、混用升降序;尽量使用覆盖索引,减少排序开销。3、主键索引为什么建议用自增ID,不用UUID?答案:InnoDB聚簇索引要求数据有序存储,自增ID和UUID差异极大:自增ID:有序递增,插入数据时直接追加到索引末尾,不会触发页分裂、页迁移,写入性能高,索引结构紧凑。UUID:无序随机,插入数据会随机写入索引各个位置,频繁触发页分裂、索引碎片,大幅降低写入性能,且UUID占用空间更大,二级索引存储主键开销更高。4、什么是索引碎片?如何清理?答案:频繁增删改数据后,B+树索引会产生大量空闲空间、数据离散不连续,就是索引碎片。碎片会导致索引查询、写入性能下降。清理方式:InnoDB:执行altertable表名engine=InnoDB;重建表,整理索引碎片;日常低峰期执行,避免业务高峰期操作锁表。五、经典面试压轴题1、一张表建立多个索引,MySQL如何选择最终使用的索引?答案:由MySQL优化器根据成本计算选择,核心判断依据:计算不同索引的查询开销(IO开销、CPU开销);匹配数据量越少、索引选择性越高、无需回表的索引,优先级越高;如果索引开销大于全表扫描,优化器会直接放弃索引,走全表扫描。2、explain执行计划中,key、possible_key、Extra字段分别代表什么?答案:possible_key:本次查询理论上可以使用的索引;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年石膏砌块行业洞察报告及未来五至十年发展趋势报告
- 2026年省华强工贸集团有限责任公司人员招聘考试参考题库及详细答案解析
- 2026年病历夹推车行业洞察报告及未来五至十年发展趋势报告
- 2026年北京青云航空仪表有限公司人员招聘笔试参考试题及详细答案解析
- 2026年无机盐制造行业研究报告及未来五至十年技术突破与应用落地
- 2026年珠海港控股集团有限公司人员招聘笔试参考题库及详细答案解析
- 2026年邮政专用机械及器材制造行业竞争格局研究报告及未来五至十年风险挑战与应对策略
- 2026年兵团投资有限责任公司人员招聘考试题库及详细答案解析
- 2026年重庆城市交通开发投资集团有限公司人员招聘参考题库及详细答案解析
- 2026年度全国“安全生产月”《安全知识》竞赛试题库(附答案)
- 幼儿园秋季流感预防知识
- JJG 1005-2019电子式绝缘电阻表检定规程
- 高三数学一轮复习教学设计:《三角恒等变换》
- 安宁疗护核心技术尊严疗法实践技巧课件
- 全球多中心RCT与区域性RWE的互补网络
- 建设工程质量管理条例2025年
- 2025-2026学年统编版三年级道德与法治上册全册教案(含教学计划)
- 5.1《走近老师》 课件 2025-2026学年统编版道德与法治 七年级上册
- 邮政反诈知识培训课件
- 瓷砖胶基础知识培训课件
- 电路施工方案(3篇)
评论
0/150
提交评论