本文档题目来自MySQL纯手写面试笔记解析,2020锤爆35K月薪,你值得拥有
闲谈:迷茫迷茫迷茫~~~~~~。
说一下 MySQL 执行一条查询语句的内部执行过程
MySQL 查询缓存的功能有何优缺点?
MySQL 的常用引擎都有哪些?
常用的存储引擎 InnoDB 和 MyISAM 有什么区别?
MySQL 中什么情况会导致自增主键不能连续?
InnoDB 中自增主键能不能被持久化?
说一下 MySQL 执行一条查询语句的内部执行过程(可知数据库驱动已经加载)
- 连接器(username,password,url)
- 查询缓存(mysql中的缓存8.0之后没默认移除了)
- 分析器(词法语法分析器。查看sql语句是否正确)
- 优化器(查看是否执行索引,按照最优的方案去执行)
- 执行器(执行语句,拿回返回数据)
- 存储引擎(主要负责数据的存储和读取)
MySQL 查询缓存的功能有何优缺点?
- 每一条查询sql都会被当做K重新记录,不需要额外解释和执行。
- 会出现内存碎片
MySQL 的常用引擎都有哪些?
引擎名称 | 是否支持事务 | 优点 |
---|---|---|
innoDB | 支持 | 提供事务操作、行级锁定(主键列,非主键列全表锁定) |
MyISAM | 不支持 | 提供高速存储、检索、全文搜索 |
常用的存储引擎 InnoDB 和 MyISAM 有什么区别?
一张自增表中有三条数据,删除了两条数据之后重启数据库,再新增一条数据,此时这条数据的 ID 是几?1-7,删除6,7。下一条是8
引擎 | 方式 |
---|---|
MySIAM | 将自增主键保存在了数据文件中。 |
InnoDB | 保存在内存中,重启之后自增主键依靠redolog恢复之前的值。 |
MySQL 中什么情况会导致自增主键不能连续?
- 唯一键冲突
- 事务回滚
InnoDB 中自增主键能不能被持久化?
保存在了内存里,并且到了 MySQL 8.0 版本后,才有了“自增值持久化”的能力,也就是才实现了“如果发生重启,表的自增值可以恢复为 MySQL 重启前的值”。