02-MySQL 原理
2022-03-22 13:54:59 2 举报
AI智能生成
以思维导图的形式,汇总 【MySQL 原理】相关的面试点
作者其他创作
大纲/内容
索引
从存储结构上看,有哪些索引
B+
为什么用B+树,而不是B树?B+树原理?
Hash索引|和B+树的区别?
MySQL为什么要使用B+树,而不是使用红黑树,跳表?
效率/磁盘IO
一些问题
如果加索引的字段比较大,会影响树的高度吗?
Hash索引
集群
复制
主从复制的方式?
异步复制(默认)
分支主题
增强半同步复制
全同步复制
事务
什么是数据库的事务?
事务的四大特性是什么?
数据库的并发一致性问题?
脏读
怎么解决的?
不可重复读
幻读
怎么解决的?
数据库的隔离级别有哪些?
读未提交
读提交
可重复读
串行读
隔离级别是如何实现的?
数据库的锁与隔离级别的关系?
原理
事务回滚的实现原理
事务日志
两阶段提交
什么是MVCC?当前读?一致性读?
快照?
Read View
在事务中可以混合使用存储引擎么?
一些问题
你在命令行输入一个sql语句,执行到一半的时候Ctrl+C,这个时候数据库是一个什么样的状态?
执行流程
MySQL执行查询的过程?
分支主题
MySQL执行更新的过程
分支主题
日志
redo log
3种状态
redo log 的写入策略
什么时候会写入
bin log
工作原理
三种格式
redo log 和 binlog 是怎么关联起来的?
双一
binlog可以简化掉吗?
和 redo log区别
锁
为什么要加锁
数据库粒度锁
概览
分支主题
全局锁、表级别锁(表锁、元数据锁(MDL))?
表锁
MDL
表锁 行锁 都有这些锁
行锁
行锁算法
间隙锁?
next-key lock?
行锁是怎么实现的
数据库管理锁
共享锁 排他锁 意向锁
意向锁有什么用?
几种典型语句的加(释放)锁DML流程
死锁
什么是死锁?如何避免?如何检测死锁?
数据库加锁规则
两阶段锁
表/数据页
整体
数据页
概览
分支主题
页结构
文件头和文件尾
记录部分
索引部分
分支主题
页分类
关键机制
MVCC
一些问题
Mvcc使用到回滚段,如果一个事务存在,那回滚日志就不能删除,所以就会特别大,MySQL使用了什么优化策略吗?
change buffer
是什么?
什么条件下可以使用 change buffer 呢
WAL机制
BufferPool
整体结构图
子主题 1
数据页加载的三种方式
checkPoint 刷脏页
怎么做的?
什么时候会刷脏页
刷脏页的控制策略
crash safe怎么保证的?
两阶段提交
多事务情况下的问题
组提交
针对通过在两阶段提交中加锁控制事务提交顺序这种实现方式遇到的性能瓶颈问题,有没有更好的解决方案呢?
数据恢复
数据恢复流程
分支主题
怎么进行数据恢复
数据库崩溃恢复,是从 redo log 更新过来的还是从 buffer pool 更新过来的呢?
LRU原理
全表扫描对 server 层的影响
0 条评论
下一页