Skip to content

MySQL 面试一般常问问题有哪些?

Innodb的记录存储相关问题?

  1. 一条查询语句请求执行的整个过程要需要经过哪些层?
  2. Innodb的行记录存储格式有哪些?
  3. Compact行记录格式有哪几部分组成?
  4. varchar 与 char的对比,怎样选择
  5. Compact行记录中变成字段列表是如何记录字段的长度的,何时使用1个字节,何时使用2个字节?
  6. Compact行记录中记录的头信息有哪些?
  7. Compact行记录中头信息中的heap_no有什么作用?
  8. MySql除了自定义的字段外还有哪些隐藏字段
  9. 什么是溢出列,什么情况会出现溢出列?
  10. MySQL中的数据执行删除后是真的删除了吗,删除过程是怎样的?

Innodb数据页相关问题

  1. 数据页有哪些部分构成?
  2. 如何服务器突然断电,Innodb是如何知道当前数据页是完整的
  3. 页目录的作用是什么?
  4. 数据页中数据的分组过程是怎样的?
  5. Innodb在执行数据查询时,如何快速定位到某行数据的?

explain

  1. explain执行之后你主要关注哪些字段?
  2. type的类型有哪些,以及执行效率的顺序是怎样的
  3. extra出现了临时文件排序,内存关联时如何处理

索引

  1. B+Tree的数据结构是怎样的?
  2. 索引非叶子节点存的实际数据,那非叶子节点存放的是什么?
  3. 页分裂的过程是怎样的?
  4. 非叶子节点中数据行存放的有哪些字段?
  5. 索引的建立的过程中会分裂,那根节点的位置会变吗,Innodb如何记录这些根节点的位置
  6. 什么是索引下推

表空间

  1. 解释下什么是区,引入区主要解决什么问题
  2. Innodb中区的分类有哪些
  3. 什么是碎片区,存在碎片区的意义是什么
  4. 什么是段?段的存在意义是什么?
  5. 段在分配存储空间的策略是什么

BufferPool

  1. 配置的BufferPool大小会在服务启动时就立即分配吗
  2. 引入BufferPool主要解决什么问题
  3. Free链
  4. 当我们需要查询某个页面的时候,如何判断页面是否已经在缓冲页中了呢?
  5. 当数据被修改之后,如何这些修改的数据页
  6. 修改后的数据页会立即刷新到磁盘上吗
  7. 当BufferPool的分配空间被使用完了之后,数据页的淘汰策略是什么

事物

  1. 事物的隔离级别
  2. 脏写、脏读、不可重复度、幻读
  3. MVCC主要解决什么问题,如何实现的MVCC
  4. Mysql的隔离级别如何实现的
  5. 行锁、表锁、意向独占锁、意向共享锁