MySql面试提问

1. 存储引擎篇

  1. 你了解MySQL存储引擎吗?说说MyISAM 和 InnoDB 的区别?

2. 索引篇

  1. 什么是索引?
  2. 说说Mysql索引的数据结构?
  3. B+Tree 和B-Tree的不同点
  4. 说说MySQL对B+Tree做的最大优化是什么?
  5. 使用B+Tree索引的优势是什么?怎么做到的?
  6. MyISAM 和 InnoDB 都是B+Tree索引,有什么不同?
  7. 为什么InnoDB 一定要有主键?(mysql可以没有主键吗?)
  8. 辅助索引搜索的流程?
  9. 说说什么是联合索引?

3.事务篇

  1. 什么是事务?
  2. 事务的四大特性?
  3. 数据库是如何保证ACID的?
  4. 并发事务带来哪些问题?
  5. 不可重复读和幻读的区别?
  6. 事务的隔离级别有哪些?
  7. InnoDB 的 REPEATABLE-READ为什么可以避免幻读

4. 锁篇

  1. MyISAM 和 InnoDB 存储引擎支持的锁?对比一下优缺点?
  2. InnoDB存储引擎的锁算法
  3. 读操作上锁吗?

5. 大表优化篇

  1. 你平常工作中有对大表进行优化吗?都是怎么做的?
  2. 什么是垂直分区?优缺点
  3. 什么是水平分区?优缺点
  4. 说说数据库分片的两种方案?

6. 性能优化

  1. 如何判断一条SQL语句执行的是否高效?(我们建立好的索引在这条SQL中是否被用到了)

  2. 一条语句再MySql中的执行过程

  3. 为什么 redo log 要引入 prepare 预提交状态?

results matching ""

    No results matching ""