开发者社区> 问答> 正文

MySQL中各种log都有啥区别

binlogrelaylogundologerrorlogslowlog

各种log都有啥区别

展开
收起
道月芬1 2021-10-14 12:43:36 1049 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,

    错误日志:对MySQL的启动、运行、关闭过程进行了记录,该文件不仅记录了所有的错误信息,也记录了一些警告信息或正确信息。排查问题是可首先看错误日志。通过SHOW VARIABLES LIKE’log_error’来定位错误日志的路径,默认文件名为主机名.err。

    慢查询日志:运行时间超过阈值的SQL语句将会被记录到慢查询日志中,DBA可以根据慢查询日志来优化sql语句。时间阈值可通过修改long_query_time来设置,默认10秒。MySQL5.1之后慢查询日志可以在表slow_log中查询。除了设置long_query_time根据运行时间将sql记录到slow_log,还支持根据逻辑IO次数将sql记录到slow_log,用long_query_io控制。slow_query_type用来控制启用slow log的方式:0:不将sql记录到slow log;1:根据运行时间;2:根据逻辑IO次数;3:根据运行时间和逻辑IO次数。

    查询日志:记录所有对MySQL数据库请求的信息,可以在general_log表中查询。

    二进制日志:记录所有对MySQL数据库执行更改的所有操作,但是不包括SELECT和SHOW这类操作,因为它们没有修改数据库。二进制日志可用于恢复、复制数据库。二进制日志文件格式为二进制,需要用MySQL提供的工具mysqlbinlog查看。

    中继日志: 从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后从服务器SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致.

    redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。

    2021-10-14 14:36:45
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载

相关镜像