MySQL 常见面试题自测
MySQL 在面试中还是非常常问的,需要多花一些时间准备!
📌说明:
- 下面这些 MySQL 自测问题的详细参考答案你都可以在 JavaGuide 和 《Java面试指北》中找到。我还会直接给出对应的参考文章,方便你查阅。
- ⭐代表重要程度,⭐越多表现面试越爱问,越要认真准备。
如果觉得 MySQL 知识点太多的话,完全可以按照这个自测来准备,把握重点,这样可以节省不少时间!
MySQL 基础架构
说说 MySQL 的架构?
👉 重要程度:⭐⭐⭐⭐
💡 提示:面试官一般不会直接问你 MySQL 基础架构,通常会由“一个 SQL 语句在 MySQL 中的执行流程”类似的问题引出。
你需要搞懂下图每一个组件所提供的主要功能。
一条 SQL语句在MySQL中的执行过程
👉 重要程度:⭐⭐⭐⭐
💡 提示:结合 MySQL 的基础架构来回答这个问题。
MySQL 存储引擎
MySQL 提供了哪些存储引擎?
👉 重要程度:⭐⭐
💡 提示:可以通过 show engines;
命令查看 MySQL 提供的所有存储引擎。
MySQL 存储引擎架构了解吗?
👉 重要程度:⭐⭐⭐
💡 提示:MySQL 存储引擎采用的是插件式架构,支持多种存储引擎,我们甚至可以为不同的数据库表设置不同的存储引擎以适应不同场景的需要。存储引擎是基于表的,而不是数据库。
MyISAM 和 InnoDB 的区别
👉 重要程度:⭐⭐⭐⭐⭐
💡 提示:从是否支持行级锁、事务、外键、数据库异常崩溃后的安全恢复、MVCC 等方面回答。
MySQL 事务
何谓事务?
👉 重要程度:⭐⭐⭐⭐
💡 提示:转账的案例。
何谓数据库事务?
👉 重要程度:⭐⭐⭐⭐
💡 提示:数据库事务可以保证多个对数据库的操作(也就是 SQL 语句)构成一个逻辑上的整体。构成这个逻辑上的整体的这些数据库操作遵循:要么全部执行成功,要么全部不执行 。关系型数据库(例如:MySQL
、SQL Server
、Oracle
等)事务都有 ACID 特性。
ACID 特性指的是什么?
👉 重要程度:⭐⭐⭐⭐⭐
💡 提示:ACID 特性大家都知道,但是,这里有一个绝大部分人可能会理解错误的地方:只有保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。也就是说 A、I、D 是手段,C 是目的!
面试官可能还会顺便问你:“持久性是如何保证的?”、“原子性是如何保证的?”巴拉巴拉。这个时候你就需要结合 MySQL 日志、MySQL 锁以及 MVCC 来回答。