MySQL中怎么启用并分析慢查询日志?


本篇文章带大家了解一下mysql中的慢查询,介绍一下启用慢查询日志,并分析慢查询的方法,希望对大家有所帮助!

MySQL中怎么启用并分析慢查询日志?

Mysql有一项功能可以记录长时间查询的慢记录,具体是多长时间可以自己配置,但是慢查询也未必就是不良的SQL,也可能受其他查询影响,或者是系统资源限制导致的,它也是我们常用的性能分析工具。【相关推荐:mysql视频教程】

MySQL的慢查询日志由long_query_time和min_examined_row_limit控制的,前者意思是如果查询花费的时间超过这么多秒,MySQL服务器就是在启用慢查询日志的情况下,将这条记录到慢查询日志文件中。

启用慢查询日志

要在 MySQL 中启用慢查询日志,请按照下列步骤操作:

首先看看MySQL中关于慢查询的状态。

MariaDB [(none)]> show variables like '%slow%';
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+                                                                                           
| Variable_name                | Value                                                                                                                                |                                                                                           
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+                                                                                           
| log_slow_admin_statements    | ON                                                                                                                                   |
| log_slow_disabled_statements | sp                                                                                                                                   |
| log_slow_filter              | admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_rate_limit          | 1                                                                                                                                    |
| log_slow_sl*e_statements    | ON                                                                                                                                   |
| log_slow_verbosity           |                                                                                                                                      |
| slow_launch_time             | 2                                                                                                                                    |
| slow_query_log               | OFF                                                                                                                                  |
| slow_query_log_file          | hxl-slow.log                                                                                                                         |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
9 rows in set (0.001 sec)

首先看slow_query_log的状态,他代表慢查询日志是否开启。该值可以是0或OFF表示禁用,1或ON表示启用。日志输出的目的地由log_output系统变量控制,如果该值为NONE,则即使启用了慢查询日志,也不会写入到日志中,log_output变量的取值如下:

  • TABLE: (默认)向mysql.general_log表写入一般查询,向表mysql.slow_log写入慢速查询 。
  • FILE:将一般和慢速查询日志写入文件系统。
  • NONE – 禁用日志记录。

还有general_log_file与slow_query_log_file 变量代表查询日志和慢查询日志文件的名称。可以在服务器启动或运行时设置这些变量。

启动慢查询日志

MySQL中默认关闭了慢查询日志功能,因此要打开此功能,我们需要将slow_query_log设置为ON,如下所示。

SET GLOBAL slow_query_log = 1;

设置记录时长

long_query_time变量表示只有运行时间超过此值就会被记录,如下所示,更改时间为5秒,他默认为10秒,最小值为 0。

SET GLOBAL long_query_time = 5;

修改输出位置

默认情况下,慢查询日志文件位于 /var/lib/mysql/hostname-slow.log,我们还可以使用slow_query_log_file变量设置另一个位置。

SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

将慢查询日志写入表

慢查询日志也可以被写入slow_log表中,方式就是上述中所说修改log_output系统变量为TABLE,操作如下:

SET GLOBAL log_output='TABLE';

慢查询日志相关的变量

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io
  • slow_query_log - 启用/禁用慢查询日志
  • log_output - 如何写入输出
  • slow_query_log_file - 慢查询日志文件的名称
  • long_query_time - 定义慢查询的时间(以秒/微秒为单位)
  • log_queries_not_using_indexes - 是否记录不使用索引的查询
  • log_slow_admin_statements - 是否记录某些管理语句
  • log_slow_disabled_statements - 不应记录在慢查询日志中的语句类型
  • min_examined_row_limit - 查询必须检查的最小行数才能变慢
  • log_slow_rate_limit - 允许记录一部分慢查询
  • slow_query_log0 - 日志中的详细信息量
  • slow_query_log1 - 限制要记录的查询

分析慢查询

日志记录后,我们还需要分析这些日志,找出影响系统的查询,MySQL提供了一个名为mysqldumpslow的工具,可以简单的显示结果,只需要把日志路径传递给他即可,如下:

# mysqldumpslow -a mysql-slow.log

Reading mysql slow query log from mysql-slow.log
Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows_sent=21.0 (21), Rows_examined=21.0 (21), Rows_affected=0.0 (0), root[root]@localhost
  show databases

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows_sent=2.0 (2), Rows_examined=2.0 (2), Rows_affected=0.0 (0), root[root]@localhost
  select * from users

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows_sent=1.0 (1), Rows_examined=0.0 (0), Rows_affected=0.0 (0), root[root]@localhost
  select @@version_comment limit 1

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows_sent=1.0 (1), Rows_examined=0.0 (0), Rows_affected=0.0 (0), root[root]@localhost

他的参数如下

  • -s ,按照什么方式起来排序。默认at,也就是按照平均查询时间来排序。都是按照倒序排列。

    al: *erage lock time 平均锁定时间

    ar: *erage rows sent 平均返回行数

    at: *erage query time 平均查询时间

    c: count 总执行次数

    l: lock time 总锁定时间

    r: rows sent 总返回行数

    t: query time 总查询时间

  • -t ,show the top n queries,显示前多少名的记录

  • -a ,默认不开启这个选项。mysqldumpslow将相似的SQL的值(字符串或者数字)替换为N,开启该选项,则显示真实值。不开启该选项,有点类似于Oracle的绑定变量的记录。\

  • -g ,类似于grep命令,过滤出需要的信息。如,只查询A表的慢查询记录。\

  • -l ,总时间中包含锁定时间

原文地址:https://juejin.cn/post/6993221989175394311

更多编程相关知识,请访问:slow_query_log2!!

以上就是MySQL中怎么启用并分析慢查询日志?的详细内容,更多请关注其它相关文章!


# 就会  # 湖南关键词排名提升厂家  # 郑州网站建设路  # 网站seo外包枷维推荐乐云seo  # 福建外贸产品网站建设  # 如何在佛山做网站推广产品  # 临沂网站建设分类  # seo竞品技巧  # 梧州模板网站建设价格  # 红原网站建设  # 微信公众号推广网站  # MySQL  # 情况下  # 如何设置  # 都是  # 值为  # 类似于  # 所示  # 行数  # 慢速  # 镜像  # 慢查询 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 苹果手机怎么合并照片_苹果手机合并多张照片的操作方法  《广发易淘金》国债逆回购操作教程  悟空浏览器网页版链接 悟空浏览器网页版最新有效地址  德邦快递会员怎么开通  《书耽》更换手机号方法  《撕歌》会员开通方法  PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素  百度浏览器无法安装扩展程序_百度浏览器插件安装失败原因解析  2025考研成绩查询时间入口分享  《荔枝fm》导出文件教程  冬季去哪个城市旅游更有可能观测到极光  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  Python项目中的条件导入:解决跨模块依赖问题  大众点评了却看不到是怎么回事  WooCommerce购物车:强制显示所有交叉销售商品教程  《下一站江湖2》风神腿获取攻略  CDR如何复制交互式填充色  使用VS Code作为你的个人知识管理系统  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  J*aScript字符串_Unicode处理  123平台官方登录入口 123邮箱网页端在线沟通工具  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  使用Selenium在无头Chrome中交互动态菜单和复选框的策略  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  使用Python和NLTK从文本中高效提取名词的实用教程  鸣潮历史学家灯塔位置一览  电脑“无法访问指定设备、路径或文件”怎么办?五种权限设置方法  《雷电模拟器》自动点击设置方法  顺丰速运官网查询入口 顺丰物流查询官网入口链接  更换小红书群背景怎么换?小红书群规则怎么设置?  手机坏了微信聊天记录怎么导出来 新手机恢复聊天记录技巧  Python中对象引用与链表属性赋值的机制解析  《暗黑破坏神4》国服回归送狂欢礼包 价值6916元  精通VS Code多光标编辑以实现闪电般快速的修改  lol小红书怎么|直播|?lol小红书|直播|是什么意思?  《火影忍者:木叶高手》快速升级攻略  J*aScript模块加载器_RequireJS原理分析  word文档中的分隔符有哪些不同类型和用途_Word分隔符类型与用途方法  Mac怎么关闭按键声音_Mac键盘打字音效设置  解决CSS布局中意外顶部空白问题的教程  空腹吃苹果好吗 苹果空腹摄入指南  PHP中动态类名访问的类实例类型提示与静态分析实践  sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧  《爱南宁》认证电动车方法  抖音号升级成企业资质怎么弄?有什么好处?  银信通自动开通原因揭秘  在VS Code中进行数据科学和机器学习开发  TikTok网页版实时观看入口 TikTok网页版短视频在线浏览  Sublime Text怎么关闭自动完成_Sublime禁用Auto Complete设置  《米姆米姆哈》米姆获取及技能攻略 

 2021-09-09

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.