日志>一切💡

在数据库的世界里,数据从来都不重要,日志才是最重要的,有了日志就有了一切。如通过redolog进行恢复

日志是MySQL数据库的重要组成部分. 日志文件中记录着MySQL数据库运行期间发生的变化; 也就是说用来记录MySQL数据库的客户端连接状况, SQL语句的执行情况和错误信息等. 当数据库遭到意外的损坏时, 可以通过日志查看文件出错的原因, 并且可以通过日志文件进行数据恢复。

数据库数据存放的文件称为data file;日志文件称为log file;数据库数据是有缓存的,如果没有缓存,每次都写或者读物理disk,那性能就太低下了。数据库数据的缓存称为data buffer,日志(redo)缓存称为log buffer;既然数据库数据有缓存,就很难保证缓存数据(脏数据)与磁盘数据的一致性。

但是万一数据库发生断电,因为缓存的数据没有写入磁盘,导致缓存在内存中的数据丢失而导致数据不一致怎么办?

为了保证事务的ACID特性,就不得不说MySQL InnoDB引擎的事务日志: 重做日志redolog和回滚日志undolog

MySQL日志分类:

错误日志 发送错误记录日志
查询日志 即通用日志,所有内容都会被记录
慢查询日志, 慢sql
[redolog], 保证事务的一致性性和持久性
binlog二进制日志,主要用于主从同步
中继日志
undolog,用于回滚,保证原子性