【面试题】MySQL常见面试题合集

【面试题】MySQL常见面试题合集,第1张

备战实习,会定期的总结常考的面试题,大家一起加油! 🎯

往期文章:

【面试题】计算机网络篇-10道常见面试题p1【面试题】JVM篇-10道常见面试题p1【面试题】Java并发篇-10道常见面试题p1【面试题】Java基础篇-常见面试题总结p1【面试题】Java基础篇-常见面试题总结p2

参考文章:

https://blog.csdn.net/qq_45966440/category_11098049.html

https://csp1999.blog.csdn.net/article/details/116069114

https://joonwhee.blog.csdn.net/article/details/106893197

https://www.pdai.tech/md/db/sql-mysql/sql-mysql-overview.html

https://javaguide.cn/

注意:

如果本文中有错误的地方,欢迎评论区指正!🍭

文章目录 常见基础篇1.说一下你对MySQL架构的了解?2.说说数据库的三范式?3.说说一条SQL查询语句在MySQL中如何执行的?4.说说MySQL中的数据类型有哪些?5.说下InnoDB 和 MyISAM 的区别?6.什么是Buffer Pool? 索引篇1.谈谈你对索引的理解?2.说一下索引有哪些类型?3.说下MySQL的索引有哪些?4.说说什么是B+树?5.谈谈聚集索引与非聚集索引?6.说一下什么是覆盖索引? 事务篇1.聊聊什么是事务?2.说说事务的ACID特性?3.聊聊并发事务带来的问题?4.事务的隔离级别有哪些? 优化篇1.说说日常在项目中你是怎么优化SQL的?2.说说什么是最左前缀原则?什么是最左匹配原则?3.说说explain分析执行计划中各个字段的含义?4.说说什么情况下索引会失效即查询不会走索引? 主从复制&读写分离篇1.主从复制中涉及到哪三个线程?2.主从同步出现延迟的原因?3.当主库宕机后,数据可能丢失,这种情况怎么解决?4.谈谈你对数据库读写分离的理解? 锁篇1.MySQL 遇到死锁问题,你是如何解决的?2.说说MySQL中的乐观锁和悲观锁是什么以及它们的区别?3.说说表级锁和行级锁两者区别?4.说说共享锁和排他锁?

常见基础篇 1.说一下你对MySQL架构的了解?

连接器: 身份认证和权限相关(登录 MySQL 的时候)查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确优化器: 按照 MySQL 认为最优的方案去执行执行器:当选择了执行方案后,MySQL 就准备开始执行了,首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎的接口,返回接口执行的结果

大体来说,MySQL可以分为Server层和存储引擎两部分:

Server 层

主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。

存储引擎

主要负责数据的存储和读取,采用可以替换的插件式架构,支持 InnoDBMyISAMMemory 等多个存储引擎,其中 InnoDB 引擎有自有的日志模块 redolog 模块。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始就被当做默认存储引擎了。

附:更加详细的功能可以参考 Server 层基本组件介绍

2.说说数据库的三范式? 第一范式:确保每列保持原子性,数据表中的所有字段值都是不可分解的原子值第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。也就是说确保表中的每列都和主键相关第三范式:任何非主属性不依赖于其它非主属性。也就是说确保每列都和主键列直接相关而不是间接相关 3.说说一条SQL查询语句在MySQL中如何执行的? 首先应用程序把查询SQL语句发送给服务器端执行查询缓存,如果查询缓存是打开的,服务器在接收到查询请求后,并不会直接去数据库查询,而是在数据库的查询缓存中找是否有相对应的查询数据,如果存在,则直接返回给客户端。只有缓存不存在时,才会进行下面的 *** 作查询优化处理,生成执行计划。这个阶段主要包括解析SQL、预处理、优化SQL执行计划MySQL根据相应的执行计划完成整个查询最后将查询结果返回给客户端

👩‍💻面试官追问:那你在说说MySQL查询的指令执行顺序?

编写顺序:

SELECT DISTINCT