1.日志种类?
redo undo binlog slow error relaylog 查询日志。
redolog 是环形缓存区,记录的时间比较短,主要用于宕机恢复数据
binlog 是 server层的日志,各引擎都可以使用,用于数据同步与数据恢复;
undolog 回滚日志,事物回滚 MVCC
WAL:write ahead log,预写日志,先更新内存,再写日志。写日志分为 redolog binlog,两阶段提交 redolog compare;binlog;redolog commit;
2.一条更新语句的事物执行流程?
查询记录是否在内存;不存在需要查询磁盘数据加载到内存;
记录undolog
更新内存数据
写入redolog compare
写入binlog
写入redolog commit;
3.MVCC
高水位 低水位 活跃事物列表;
RR:开启事物后,第一次执行查询的时候生成ReadView,后续快照读都是用该ReadView
RC:每次查询都重新生成ReadView;
DB列:事物ID、回滚指针、row_id
4.MySQL脏页刷新的时机?控制刷新机制有几种?
1.提交即刷新;2.每秒刷新一次;3.交给操作系统控制;
4个。
5.MySQL执行语句的流程:
图1
6. redo binlog undolog
图2