1.什么是慢查询日志
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,会被记录到慢查询日志中,long_query_time的默认值为10,意思是运行10秒以上的语句。默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置相关参数slow_query_log。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件

2.开启慢查询日志

2.1查看参数

SHOW VARIABLES LIKE '%slow_query_log%'

如果是off,需要手动开启

2.2开启

SET  GLOBAL slow_query_log = 1

2.3查看时长阀值

SHOW VARIABLES LIKE '%long_query_time%'

默认是10秒,但是我们不会允许sql这么长的时间,一般需要调小

2.4设置时长阀值

SET  GLOBAL long_query_time = 2

这里设置好了,打开新的连接窗口查看,值才会更新

3.查询当前系统中有多少条慢查询记录

show global status like '%Slow_queries%';

4.慢查询日志路径

SHOW VARIABLES LIKE '%slow_query_log_file%'

5.日志分析工具mysqldumpslow

在生产环境中,如果要手工分析慢查询日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow。

5.1语法格式

mysqldumpslow [ OPTS... ] [ LOGS... ]  -- 后跟参数以及log文件的绝对地址;

5.2参数

1)s: 是表示按照何种方式排序;

2)c: 访问次数

3)l: 锁定时间

4)r: 返回记录

5)t: 查询行数

6)al:平均锁定时间

7)ar:平均返回记录数

8)at:平均查询时间

9)t:即为返回前面多少条的数据;

10)g:后边搭配一个正则匹配模式,大小写不敏感的;

5.3示例

1)得到返回记录集最多的10个SQL

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log

2)得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log

3)得到按照时间排序的前10条里面含有左连接的查询语句

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log

4)另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more


 

mysql17-sql优化-慢查询日志的更多相关文章

  1. MySql5.5 SQL优化 慢查询日志存储

    一.MySql的慢查询日志的开启和存储 1.查看是否把没有使用索引的SQL记录到慢查询日志中,查看 log_queries_not_using_indexes 变量; show VARIABLES L ...

  2. sql优化 慢查询分析

    查询速度慢的原因很多,常见如下几种 SQL慢查询分析 转自:https://www.cnblogs.com/firstdream/p/5899383.html 1.没有索引或者没有用到索引(这是查询慢 ...

  3. Mysql优化--慢查询日志

    Mysql 系列文章主页 =============== 默认没有开启慢查询日志功能.如果不是调优需要的话,一般不建议开启. 查看是否开启慢查询日志: SHOW VARIABLES LIKE '%sl ...

  4. 数据库SQL优化分析查询语句总结

    方法一: SELECT TOP 10 TEXT AS 'SQL Statement' ,last_execution_time AS 'Last Execution Time' ,(total_log ...

  5. 如何在 Linux 上用 SQL 语句来查询 Apache 日志

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...

  6. mysql之 slow log 慢查询日志

    一. 相关参数: • slow_query_log ◦ 是否开启慢查询日志 • slow_query_log_file ◦ 慢查询日志文件名, 在 my.cnf 我们已经定义为slow.log,默认是 ...

  7. MySQL索引原理及SQL优化

    目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type tab ...

  8. 关于SQL优化

    建立索引常用的规则 表的主键.外键必须有索引: 数据量超过300的表应该有索引: 经常与其他表进行连接的表,在连接字段上应该建立索引: 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引 ...

  9. 数据库的规范和SQL优化技巧总结

    现总结工作与学习中关于数据库的规范设计与优化技巧 1.规范背景与目的 MySQL数据库与 Oracle. SQL Server 等数据库相比,有其内核上的优势与劣势.我们在使用MySQL数据库的时候需 ...

  10. SQL语句技巧_索引的优化_慢查询日志开启_root密码的破解

    1.正则表达式的使用 regexp例:select name,email from t where email regexp '@163[.,]com$'使用like方式查询selct name,em ...

随机推荐

  1. tekla软件安装教程

    Tekla2020 WIN10 64位安装步骤: 1.先使用"百度网盘客户端"下载Tekla2020_x64软件安装包到电脑磁盘,并鼠标右击进行解压缩,安装前先断开电脑网络,然后找 ...

  2. 前端项目通过‘URL 重写’部署在 IIS 中,访问 WebAPI 接口

    〇.前言 在前端项目开发时,我们可以通过配置代理 proxy 来访问本地或者是远程接口,但是部署后代理就失效了.如果项目部署在 IIS 上,就没法去对应到指定接口,此时就需要 IIS 中的'URL重写 ...

  3. vue3和vue2 的区别,vue3和vu2到底哪个好呢?

    vue3 正式发布有两年多了,之前也做过一些学习和研究.vue3 发布后给某培训机构开发了一套vue3课程课件,自己也开源了一套基于vue3的后台管理系统(因为个人懒的原因,半年后才上传到gitHub ...

  4. C温故补缺(十四):内存管理

    内存管理 stdlib库中有几个内存管理相关的函数 序号 函数和描述 1 void *calloc(int num, int size);在内存中动态地分配 num 个长度为size 个字节 的连续空 ...

  5. 轻松玩转sed

    sed处理文本方法 1.文本或管道输入 2.读入一行到模式控件 3.sed命令处理 4.输出到屏幕 所以 sed是一个流处理编辑器 sed一次处理一行内容 sed不改变文件内容(可以通过重定向改变文件 ...

  6. svn 日常使用的错误集锦

    1.SVN:Previous operation has not finished; run 'cleanup' if it was interrupted 当时遇到这个问题时,找了各种解决方案什么要 ...

  7. 下载安装MinGW-w64详细步骤

    一.MinGW-w64介绍 MinGW 的全称是:Minimalist GNU on Windows ,实际上是将gcc(c/c++编译器)移植到了 Windows 平台下,并且包含了 Win32AP ...

  8. 【Shell案例】【wc记录单词长度、for循环和if、awk文本分析工具】7、打印字母数小于8的单词

    描述写一个 bash脚本以统计一个文本文件 nowcoder.txt中字母数小于8的单词. 示例:假设 nowcoder.txt 内容如下:how they are implemented and a ...

  9. python安装包出现的两个问题error: Unable to find vcvarsall.bat、提示No module named Crypto.Cipher

    python安装包出现的两个问题 error: Unable to find vcvarsall.bat No module named Crypto.Cipher error: Unable to ...

  10. 猿人学web爬虫攻防大战

    这里有1.2.3.4.12.13.15题 1.第一题 import execjs import requests def get_response(): js_code = ""& ...