MySQL 面试一般常问问题有哪些?
Innodb的记录存储相关问题?
- 一条查询语句请求执行的整个过程要需要经过哪些层?
- Innodb的行记录存储格式有哪些?
- Compact行记录格式有哪几部分组成?
- varchar 与 char的对比,怎样选择
- Compact行记录中变成字段列表是如何记录字段的长度的,何时使用1个字节,何时使用2个字节?
- Compact行记录中记录的头信息有哪些?
- Compact行记录中头信息中的heap_no有什么作用?
- MySql除了自定义的字段外还有哪些隐藏字段
- 什么是溢出列,什么情况会出现溢出列?
- MySQL中的数据执行删除后是真的删除了吗,删除过程是怎样的?
Innodb数据页相关问题
- 数据页有哪些部分构成?
- 如何服务器突然断电,Innodb是如何知道当前数据页是完整的
- 页目录的作用是什么?
- 数据页中数据的分组过程是怎样的?
- Innodb在执行数据查询时,如何快速定位到某行数据的?
explain
- explain执行之后你主要关注哪些字段?
- type的类型有哪些,以及执行效率的顺序是怎样的
- extra出现了临时文件排序,内存关联时如何处理
索引
- B+Tree的数据结构是怎样的?
- 索引非叶子节点存的实际数据,那非叶子节点存放的是什么?
- 页分裂的过程是怎样的?
- 非叶子节点中数据行存放的有哪些字段?
- 索引的建立的过程中会分裂,那根节点的位置会变吗,Innodb如何记录这些根节点的位置
- 什么是索引下推
表空间
- 解释下什么是区,引入区主要解决什么问题
- Innodb中区的分类有哪些
- 什么是碎片区,存在碎片区的意义是什么
- 什么是段?段的存在意义是什么?
- 段在分配存储空间的策略是什么
BufferPool
- 配置的BufferPool大小会在服务启动时就立即分配吗
- 引入BufferPool主要解决什么问题
- Free链
- 当我们需要查询某个页面的时候,如何判断页面是否已经在缓冲页中了呢?
- 当数据被修改之后,如何这些修改的数据页
- 修改后的数据页会立即刷新到磁盘上吗
- 当BufferPool的分配空间被使用完了之后,数据页的淘汰策略是什么
事物
- 事物的隔离级别
- 脏写、脏读、不可重复度、幻读
- MVCC主要解决什么问题,如何实现的MVCC
- Mysql的隔离级别如何实现的
- 行锁、表锁、意向独占锁、意向共享锁