MySQL慢查询日志

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

 mysql本身支持慢查询日志,可以配置SQL查询超过特定时间的查询记录到日志中。这在优化SQL查询中是非常有效的工具,能够帮助我们快速定位发生问题的SQL。


  慢查询日志常用的变量


  long_query_time : 最小值为0,默认为10毫秒,仅记录超过查询时间的SQL,最小粒度为毫秒。


  min_examined_row_limit : 执行查询时扫描过的行数。


  slow_query_log_file : 慢查询日志文件名称


  log-output : 慢查询日志存放路径


  log_queries_not_using_indexes : 不使用索引的查询记录到慢查询日志  


  log_slow_slave_statements : 将集群中的慢查询日志记录到主节点主机慢查询日志中。 


   详解慢查询日志的使用 


  将日志记录到文件时,最小时间粒度可以为毫秒。但是将日志记录到数据库中的表时,只能记录到整型的秒。所以,慢查询日志多数记录在文件中。


  mysql并不将初始锁定SQL时间当作执行时间,mysqld只有在sql执行完毕,并且释放了所有的锁后,才会将日志写进文件。因此,日志中记录的顺序可能与应用程序实际执行的时间不同。


  默认情况下,慢查询日志是不启用的,所以很多人从来不知道这个玩意。若启用慢查询日志,需要在启动mysql时指定 --slow_query_log[={0|1}]. 如果没有参数或者参数为1,就启用了慢查询日志。当然参数为0的话,就会禁用慢查询日志。指定日志文件名称的话,使用 --slow_query_log_file=file_name。指定日志文件路径的话,使用 --log-output=output_file_name


  如果没有为慢查询日志指定文件名的话,默认名字是 host_name-slow.log。如果不为日志指定目录的话,这个日志会存放在数据目录下。


  有一点需要的是,如果不为慢查询日志文件找不到目录或者目录不存在的话,即便启用了慢查询日志,也不会记录到慢查询日志文件中。所以,切记指定的慢查询日志目录是一个已经存在的目录。


  如果想要慢查询日志少记点内容的话,可以使用 --log-short-format选项。


  如果想要将管理行为也记录到慢查询日志中,可以使用log_slow_admin_statements变量。它会记录下修改数据表,分析数据表,检查数据表,创建索引,删除索引以及修复数据表等行为。


  如果要在慢查询日志中记录下没有使用索引的查询,可以使用log_queries_not_using_indexes变量。当然这么做,会导致系统的日志增加的特别快。我们可以使用log_throttle_queries_not_using_indexes变量限制记录查询的频率。这个变量的默认值是0,即无限制记录。我们最好设置一个整数如60,只需记录每分钟不使用索引查询的次数即可。


  最后,从数据库缓存中查询的记录不会记录到慢查询日志中。如果一个表没有数据的话,也不会记录到慢查询日志中。集群中的主节点不会将重复的内容记录到慢查询日志中,除非启用 log_slow_slave_statements。






本文转自 genuinecx 51CTO博客,原文链接:xxxxxxx,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
24天前
|
监控 关系型数据库 MySQL
《MySQL 简易速速上手小册》第7章:MySQL监控和日志分析(2024 最新版)
《MySQL 简易速速上手小册》第7章:MySQL监控和日志分析(2024 最新版)
42 3
|
7天前
|
关系型数据库 MySQL 数据管理
MySQL通过 bin-log 恢复从备份点到灾难点之间数据
MySQL通过 bin-log 恢复从备份点到灾难点之间数据
|
13天前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之在DataWorks中,如何通过PolarDB for MySQL来查看binlog日志
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 1
|
14天前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志
|
20天前
|
SQL 存储 关系型数据库
MySQL慢日志的介绍以及如何使用问题
MySQL慢日志的介绍以及如何使用问题
19 0
|
1月前
|
存储 SQL 关系型数据库
mysql数据库日志
mysql数据库日志
|
存储 SQL 关系型数据库
慢查询与MySQL语句优化(下)
如果我们了解了Mysql中的索引原理之后,(详见探秘数据库 —— 事务 + InnoDB存储引擎),如何利用索引并对一些执行较慢的sql进行优化也是必要的,所以我们可以结合索引的原理来探究一下慢查询与优化的知识。
慢查询与MySQL语句优化(下)
|
存储 SQL 关系型数据库
慢查询与MySQL语句优化(上)
如果我们了解了Mysql中的索引原理之后,(详见探秘数据库 —— 事务 + InnoDB存储引擎),如何利用索引并对一些执行较慢的sql进行优化也是必要的,所以我们可以结合索引的原理来探究一下慢查询与优化的知识。
慢查询与MySQL语句优化(上)
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
17 3
mysql 设置环境变量与未设置环境变量连接数据库的区别

推荐镜像

更多