此页内容

011、MYSQL 的日志类型有哪些?

345字约1分钟

2025-03-05

MYSQL 主要有以下三种类型的日志:

bin log:是 MYSQL 的二进制日志文件,主要用来记录对 MYSQL 服务器上所有操作(DDL、 DML),主要在事务提交后生成、可以用来恢复数据库数据;

redo log :记录对数据库页的所做的修改,在实例崩溃重启时,可以通过 redo log 恢复未完成的事务,确保事务的一致性,另外当一个事务提交时,会将该事务的日志写入 redo log 并刷新到磁盘里,确保事务的持久性;

undo log:当事务执行失败或被显示回滚时,undo log 可以撤销已经做出的更改,使数据库回到事务执行前的状态,确保事务的原子性。

扩展:MYSQL 是如何实现事务的?

MYSQL 主要是通过 锁、redo log、undo log、MVCC 来实现事务的:

MYSQL 利用的锁(行锁、间隙锁等等)机制,实现数据并发修改的控制,符合事务的隔离性;

MVCC(多版本并发控制),满足了非锁定读的需求,提高了并发度,实现了读已提交和可重复读两种隔离级别,实现了事务的隔离性

redo log 和 undo log 的作用可参考上述的介绍。