MySQL优化之InnoDB基础原理
一、事务隔离级别
理解各种事务隔离级别的优缺点
(一)四种事务隔离级别总结
(二)四种事务隔离级别下,去重现脏读现象、不可重复读现象、幻读现象
1、在RU隔离级别下,会出现脏读现象
2、在RC隔离级别下,会出现不可重复读现
3、在RR隔离级别下,理论上会幻读现象,但是innodb存储引擎已经利用MVCC机制解决了RR下的幻读问题。
二、UNDO和REDO日志
(一)UNDO日志
1、undo日志是为了实现事务的原子性,以及实现了多版本并发控制MVCC;
2、事务在修改之前先将前镜像存入到undo日志来保证事务的原子性(undo日志存储在共享表空间里,也会在innodb缓冲池里缓存undo页)。
(二)REDO日志
1、redo日志保证数据库的持久性,也用于实例恢复;
2、redo log是innodb的事务日志,存放在ib_logfile*文件里,有专门的缓存内存(log buffer pool)
相比redo log,undo log没有单独的日志文件,存放在共享表空间(idbdata文件),且没有单独的缓存内存,存放在innod缓冲池(innodb buffer pool)*