Mysql会产生几种日志 MySQL的日志按所属层级划分‌共有7种核心日志‌分为Server层和InnoDB引擎层两大类‌Server层日志5种‌错误日志记录启动、运行、停止的错误警告默认开启用于排查故障。二进制日志Binlog记录所有修改数据的SQL用于主从复制和数据恢复。慢查询日志记录执行超时的SQL辅助数据库性能优化。通用查询日志记录所有连接和执行的SQL指令因资源占用大默认关闭。中继日志Relog Log仅主从架构的从库存在暂存主库同步过来的Binlog内容。‌InnoDB引擎层日志2种‌重做日志Redo Log记录数据页修改保障事务持久性支持崩溃恢复。回滚日志Undo Log记录修改前的数据版本用于事务回滚和MVCC多版本控制。错误日志(error log)error log主要记录MySQL在启动、关闭或者运行过程中的措误信息在MySQL的配置文件my.cnf中可以通过log-error/varfloR/mysqldlog执行mysqI热误日志的位置.慢查询日志(slow query log)MySQL的慢查淘日志是MySQL提供的一种日志记录它用来记录在MyQL中响应时间超过阀值的语句具体指运行时间超过long_query_time值的SQL则会敏记录到慢查询日志中。long_query_time的默认值为10意思是运行10秒以上的语句.由他来查看密些SQL超出了我们的最大忍耐的间值比如一条sq执行超过5秒钟我们就算慢SQL希望能收集超过5秒的sql结合之前explain进行全面分析。默认情况下MySQL数据库没有开启慢查询日志需要我们手动来设置这个参数.当然如果不是调优需要的话一般不建议启动该参数因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件在生产环境中如果要手工分析日志查找、分析SQL显然是个体力活MySQL提供了日志分析工具mysqldumpslow。一般查询日志(general log)general log记录了客户端涟接信息以及执行的SQL语句信息通过MySQL的命令·重写日志(redo log)回滚日志(undo log)二进制日志(bin log)bin log作用是什么?MySQL的bin log日志是用来记录MySQL中增删改查时的记录日志。当你的一条sq|操作对数据库中的内容进行了更新就会增加一条bin log日志。查询操作不会记录到bin log中。bin log最大的用处就是进行主从复制以及数据库的恢复。redo log作用是什么?redo log是一种基于磁盘的数据结构用来在MySQL宕机情况下将不完整的事务执行数据纠正redo 日志记录事务执行后的状态.当事务开始后redo log就开始产生并且题着事务的执行不断写入redo log file中redo log file中记录了xxx页做了xx修改的信息我们都知道数据库的更新操作会在内存中先执行最后刷入磁盘.redo log就是为了恢复更新了内存但是由于宕机等原因没有刷入磁盘中的那部分数据.undo log作用是什么?undo log主要用来回滚到某一个版本是一种逻辑日志。undo log记录的是修改之前的数据比如:当delete一条记录时undolog中会记录一条对应的insert记录从而保证能恢复到数据修改之前。在执行事务回滚的时候就可以通过undo log中的记录内容并以此进行回滚.undo log还可以提供多版本并发控制下的读取(mvcc) .