- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MySQL面试高频题目及参考答案
一、基础概念类
题目:MySQL中InnoDB和MyISAM引擎的核心区别是什么?实际开发中怎么选?
答案:核心区别集中在事务、锁机制和存储结构上。InnoDB支持事务(ACID)、行级锁,有聚簇索引,崩溃后可恢复,适合写操作多、需要数据一致性的场景(比如订单、支付系统);MyISAM不支持事务和行锁,只有表锁,查询速度快,适合读多写少、不需要事务的场景(比如博客文章、静态数据展示)。现在开发中优先选InnoDB,因为大部分业务都需要事务保障,MyISAM基本被淘汰了。
题目:MySQL的字符集和校对规则是什么关系?开发中常用的字符集有哪些?
答案:字符集是字符的编码方式(比如UTF-8),校对规则是字符比较的规则(比如是否区分大小写),一个字符集可以对应多个校对规则。常用字符集:UTF-8(utf8mb4,支持emoji和特殊字符,现在默认推荐)、GBK(支持中文,无需UTF-8的场景)、Latin1(兼容英文,不支持中文)。注意:建表时字符集和校对规则要统一,避免乱码。
题目:什么是MySQL的视图?视图的优缺点是什么?
答案:视图是基于查询结果的虚拟表,本身不存储数据,数据来自底层表。优点:简化复杂查询(把多表关联封装成视图,不用重复写SQL)、隐藏敏感字段(比如只展示用户昵称,不展示手机号)、统一数据访问逻辑;缺点:不能加索引(查询效率依赖底层表索引)、复杂视图修改受限(比如多表关联的视图不能直接insert),适合查询场景,不适合高频写操作。
二、索引类
题目:MySQL索引的作用是什么?常见的索引类型有哪些?
答案:索引的核心作用是加速查询,减少磁盘IO(不用全表扫描),同时也能约束数据(比如唯一索引)。常见类型:①主键索引(PRIMARYKEY):唯一且非空,一张表只能有一个;②唯一索引(UNIQUE):值唯一,允许空值;③普通索引(INDEX):无约束,加速查询;④联合索引(多列组合索引):遵循“最左前缀匹配原则”,比如联合索引(a,b,c),能匹配a、a+b、a+b+c的查询;⑤全文索引(FULLTEXT):适合大文本字段的模糊查询(比如文章内容搜索)。
题目:什么是聚簇索引和非聚簇索引?InnoDB的聚簇索引有什么特点?
答案:聚簇索引是索引和数据存储在一起的索引,查询时找到索引就直接拿到数据;非聚簇索引(二级索引)是索引和数据分开,查询时需要先查二级索引拿到主键,再通过主键查聚簇索引获取数据(回表)。InnoDB的聚簇索引默认是主键索引,如果没有主键,会选唯一非空索引,再没有就自动生成隐藏主键。聚簇索引的优点是查询主键相关数据快,缺点是插入顺序影响性能(比如无序插入会导致页分裂)。
题目:为什么不建议给表的所有字段加索引?索引失效的常见场景有哪些?
答案:索引不是越多越好,因为:①索引会占用磁盘空间;②插入、更新、删除时需要维护索引,降低写操作效率。索引失效场景:①使用函数或运算操作索引字段(比如wheredate(create_time)=2024-01-01);②使用不等于(!=、)、notin、isnotnull;③字符串不加引号(比如wherename=123,name是varchar类型);④模糊查询以%开头(比如wherenamelike%张三);⑤联合索引不满足最左前缀原则;⑥使用or连接非索引字段(比如wherea=1orb=2,b不是索引字段)。
三、事务与锁类
题目:MySQL事务的ACID特性分别是什么?怎么理解?
答案:ACID是事务的四大特性:①原子性(Atomicity):事务要么全执行,要么全回滚,比如转账时“扣款”和“到账”要么都成功,要么都失败;②一致性(Consistency):事务执行前后数据总量一致,比如转账前A有100,B有50,转账后总和还是150;③隔离性(Isolation):多个事务同时执行时,互相不干扰;④持久性(Durability):事务提交后,数据永久保存到磁盘,不会因为崩溃丢失。
题目:MySQL的事务隔离级别有哪些?默认级别是什么?不同级别会出现什么问题?
答案:隔离级别从低到高:①读未提交(ReadUncommitted):能读到其他事务未提交的数据(脏读);②读已提交(ReadCommitted):只能读到其他事务已提交的数据,解决脏读,但会出现不可重复读(同一事务内两次查询结果不一致);③可重复读(RepeatableRead):MySQL默认级别,同一事务内多次查询结果一致,解决不可重复读,可能出现幻读(事务内查
原创力文档


文档评论(0)