前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL日志-慢查询日志

MYSQL日志-慢查询日志

原创
作者头像
COY_fenfei
修改2020-05-06 17:53:25
4.6K0
修改2020-05-06 17:53:25
举报
文章被收录于专栏:COYCOY

当你作为一个开发人员,每天上班开开心心的coding。突然某一天DBA找上门来说发给你或者你的部门经理一大堆的sql,需要你们紧急处理这些快要把系统搞挂掉的慢查询。那问题来了?然而今天我说的问题不是这些SQL为啥执行慢,而是DBA如何定位发现他们的。本文核心讲解和慢查询有关参数的说明使用。

MySQL的慢查询日志,用于记录执行超过指定时长的SQL相关的信息,然而记录内容却不仅限于此。记录生成的log文件就是慢查询日志?是的,但也不仅限于此。

MySQL慢查询相关参数:

注:【以下介绍的所有参数均可通过静态配置和动态修改,查看及配置方式可参考文章:MySQL参数

  1. slow_query_log : mysql的慢查询记录功能不是默认开启的,这个参数便是用于控制开启关闭的开关,参数值由ON/OFF组成,ON:开启,OFF:关闭
  2. slow_query_log_file : 该参数描述了慢查询日志文件生成的磁盘位置;
  3. long_query_time : 该参数定义了SQL执行时间被判定为慢查询的阈值,默认单位为秒,默认值为10;慢查询只会记录执行时间大于该阈值的SQL,恰好等于该阈值的SQL将不会被记录。
  4. log_queries_not_using_index : 该参数描述了是否需要将未使用索引的SQL记录到慢查询日志中去,(即使它执行起来可能并不慢)ON:开启 OFF:关闭
  5. log_throttle_queries_not_using_index : 该参数在log_queries_not_using_index=ON情况下生效,表示每分钟允许向slow_log中记录未使用索引的sql的数量。值为0时表示无限制。
  6. log_output :该参数控制慢查询记录存储的方式,有两个值:FILE/TABLE。你是否有点小惊讶,说好的日志不就应该是一个log文件吗?然而并不是,MYSQL支持两种方式对慢查询信息记录,一种log文件的方式,另一种是表模式记录。mysql库中默认创建了一张slow_log表,用来记录慢查询,表结构可以查看通过: show create table mysql.slow_log
image.png
image.png

可以发现这居然是一个存储引擎为CSV的表,你可以把他修改为你想要的引擎模式,但是在修改前要记得先关闭慢查询开关slow_query_log=OFF。为了增加查询效率,你也可以创建相关索引。慢查询存储方式修改为TABLE后就不再写log。

总结:mysql慢查询不是默认开启的,需要修改参数slow_query_log=ON开启;慢查询中记录的不一定都是执行时间超过阈值的SQL也有可能是未使用到索引的SQL;慢查询并不一定是日志log文件方式存储,也可以使用表存储。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结:mysql慢查询不是默认开启的,需要修改参数slow_query_log=ON开启;慢查询中记录的不一定都是执行时间超过阈值的SQL也有可能是未使用到索引的SQL;慢查询并不一定是日志log文件方式存储,也可以使用表存储。
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档