IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL日志 -> 正文阅读

[大数据]MySQL日志

MySQL日志

日志类别

MySQL中的日志文件是很重要的一部分内容,其记录了影响MySQL数据库的各种类型活动,可以帮助我们对MySQL数据库的运行状态进行诊断,常见的日志文件有四种:

  • 错误日志(error log)
  • 慢查询日志(slow query log)
  • 查询日志(log)
  • 二进制日志(binlong)

错误日志

简介

错误日志文件对MySQL的启动、运行、关闭过程进行了记录。不仅记录了所有的错误信息,也记录了一些警告信息或正确的信息。

我们可以通过下面的命令来定位该文件:

# 查看错误日志文件位置
SHOW VARIABLES LIKE 'log_error'\G;

默认情况下错误文件的文件名为服务器的主机名。

日志路径配置

当然错误日志文件的路径也可以通以下三种方式进行配置:

  • MySQL启动时指定
  • 设置全局变量
  • 修改配置文件

具体可以参照下面博客:

MySQL错误日志总结

慢查询日志

简介

慢查询日志可以帮助定位可能存在问题的SQL语句,从而进行SQL语句层面的优化,其中有几个重要的参数:

  • long_query_time(超过该值的所有SQL语句都会被记录到慢查询日志文件中,注意等于该值不会被记录)
  • slow_query_log(控制慢查询日志的开关,默认关闭)
  • log_queries_not_using_indexes(将没有使用索引的语句记录到慢查询日志中)
  • log_throttle_queries_not_using_indexes(每分钟允许记录到slow log的且未使用索引的SQL语句次数)
  • log_output(指定了慢查询输出的格式,默认为FILE)
  • slow_query_log_file(慢查询日志文件的位置)

参数的查询语句如下:

SHOW VARIABLES LIKE 'slow_query_log'\G;

日志查看

文件形式查看

如果越来越多的SQL查询被记录到了慢查询日志文件中,分析该文件可能就不会显得简单直观了,此时我们可以使用MySQL提供的mysqldumpslow命令:

# MySQL分析慢查询日志工具
mysqldumpslow mike-slow.log;

表形式查看

MySQL同样也支持将慢查询的日志记录放入到一张表里,但是需要将log_output输出格式设置为TABLE。

# 更改输出格式
SET GLOBAL log_output='TABLE';
# 查询表的方式查询
SELECT * FROM mysql.slow_log\G;

slow_log表默认使用的是CSV引擎,为了提升大数据量下的查询效率,我们可以人为地将引擎转换到MyISAM,并在start_time列上添加索引,需要注意的是该操作需要先关闭慢查询:

# 关闭慢查询
SET GLOBAL slow_query_log=off;
# 更改表引擎
ALTER TABLE mysql.slow_log ENGINE=MyISAM;

查询日志

简介

查询日志记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。同样地,查询日志也支持表的方式查看,由上述讲到的log_output参数控制,该表的使用方式和慢日志基本一样。

# 查询日志相关的参数
SHOW VARIABLES LIKE 'general_log%';
# 查询日志文件是否开启
SHOW VARIABLES LIKE 'general_log'\G;
# 查询日志文件的位置
SHOW VARIABLES LIKE 'general_log_file'\G;
# 查询表的方式查询
SELECT * FROM mysql.general_log;

二进制日志

简介

二进制日志记录了对MySQL数据库执行更改的所有操作,但是不包括SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。

# 查看二进制日志相关的参数
SHOW VARIABLES LIKE '%log_bin%';
# 查询二进制日志是否开启
SHOW VARIABLES LIKE 'log_bin';
# 查询binlog文件路径
SHOW VARIABLES LIKE 'datadir';
# 查询binlog文件名
SHOW MASTER STATUS;
# 查询binlog
SHOW BINLOG EVENTS IN 'log_file'\G;

二进制日志主要有以下几种作用:

  • 恢复:某些数据的恢复需要二进制文件
  • 复制:通过复制和执行二进制文件使一台远程主机的MySQL数据库与一台MySQL数据库进行实时同步
  • 审计:用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的供给

二进制文件的主要参数:

  • max_binlog_size:单个二进制文件的最大值,如果超过该值,则产生新的二进制日志文件,后缀名+1,并记录到.index文件
  • binlog_cache_size:所有未提交的二进制日志都会被记录到缓存中,若缓存过小则会生成临时文件存储,此参数可以控制缓存区大小
  • binlog_cache_use:记录了使用缓存区写二进制日志的次数
  • binlog_cache_disk_use:记录了使用临时文件写二进制日志的次数
  • sync_binlog:控制二进制日志同步到磁盘的时机
  • binlog_do_db:控制需要写入哪些库的日志
  • binlog_ignore_db:控制忽略写入哪些库的日志
  • log_slave_update:控制是否将从master取得并执行的二进制日志写入自己的二进制日志文件中
  • binlog_format:控制二进制日志的格式

日志查看

如果需要查看二进制文件的内容,必须通过MySQL提供的工具mysqlbinlog

# -vv可显示更多执行信息
mysqlbinlog --vv --start-position=200 test.00004

参考资料

MySQL错误日志总结

《MySQL技术内幕》:3.2日志文件

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:09:28  更:2021-09-27 14:10:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:13:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码