MySQL中事务日志和重做日志的区别

Luk*_*yen 16 mysql transaction-log

我已经阅读了有关 MySQL 的内容。在我看来,我认为两种日志类型非常相似。MySQL 在日志中保存数据更改的方式和时间。信息用于 MySQL 的恢复。我混淆了两种日志类型的功能。

jyn*_*nus 23

REDO 日志是 Oracle 术语,事务日志是 InnoDB 术语。既然都是 Oracle 工程师,人们在 MySQL 中使用两者来指代同一事物

默认情况下,事务日志是 - 它可以更改 - 位于 $DATADIR 中的两个文件称为ib_logfile0ib_logfile1。它提供与其他数据库中的 REDO 日志相同的功能——以安全的方式存储写入并在崩溃的情况下恢复,尽管在实现中存在一些与其他 RDMS 功能不同的细节。它是 InnoDB 作为事务引擎的主要组件。

不要将事务日志与 MySQL 中的二进制日志混淆。默认情况下,binlog 位于 $DATADIR 和 is*hostname*-bin.index和几个*hostname*-bin.00001等上。对于来自其他数据库的人来说尤其令人困惑,因为它用于其他数据库使用 REDO 日志的其他事情:复制和时间点恢复。主要区别在于事务日志是仅 InnoDB 的,二进制日志(大部分)是事务独立的,因为它适用于所有存储引擎,无论是事务性的还是非事务性的。MyISAM 将写入(如果启用)到二进制日志。InnoDB 将写入事务日志和二进制日志。

有关手册的更多信息:REDO log , binary log