MySQL性能调优
- 查看系统中的各种LSN值
本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。
01.redo日志的作用和格式
02.redo日志的写入过程
03.什么是Log Sequence Number?
04.innodb_flush_log_at_trx _commit辨析
05.什么是事务id和trx_id隐藏列
06.增删改的undo日志的格式辨析
07.事务提交的流程
08.事务恢复流程
09.面试题:同时写Redo和Binlog怎么保持一致?
10.MySQL8的增强特性
事务的原子性是通过undo日志来实现的
事务的隔离性是通过MVCC+读写锁实现的·
事务的持久性是通过redo日志来实现的
事务的ACID地位是一样重要的吗?
在这个里面C是最重要的,一致性是目的。AID原子性、隔离性和持久性是手段。事务只有实现了AID才可能实现C一致性。
查看系统中的各种LSN值
我们可以使用SHOW ENGINE INNODB STATUS命令查看当前InnoDB存储引擎中的各种LSN值的情况,比如:
SHOW ENGINE INNODB STATUS\G
其中:
Log sequence number: 代表系统中的 Isn值,也就是当前系统已经写入的redo日志量,包括写入log buffer中的日志。
Log flushed up to: 代表flushed_to_disk_Isn的值,也就是当前系统已经写入磁盘的redo日志量。
Pages flushed up to: 代表flush链表中被最早修改的那个页面对应的