目录

  • 慢查询日志

    • 1. 慢查询日志开启
    • 2. 慢查询日志设置与查看
    • 3.日志分析工具mysqldumpslow

序言: 在我面试很多人的过程中,很多人谈到SQL优化都头头是道,建索引,explain分析,like全模糊会导致索引失效 云云,于是我问道:优化之前,需要找出数据库中比如超过2s的慢SQL,你是怎么找的?很多人答不上来,要是找都找不到,怎么去优化呢,一个中大型系统可能成千上万条SQL都不过分,难道要一个个去分析么。

所以今天和大家聊聊 慢SQL的挖掘机-慢查询日志

慢查询日志

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。

当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。

1. 慢查询日志开启

  • 查看是否开启: show variables like '%slow_query_log%';
  • 开启慢查询日志:set global slow_query_log=1; (重启会失效)

开启了慢查询日志后,什么样的SQL才会记录到查询日志里面?

这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒

查看命令: show variables like 'long_query_time%';

注: 永久设置慢查询日志开启,以及设置慢查询日志时间临界点(不建议)

linux中,mysql配置文件一般默认在 /etc/my.cnf 更改对应参数即可

2. 慢查询日志设置与查看

  • 设置阀值命令: set global long_query_time=3 (修改为阀值到3秒钟的就是慢sql)

为什么设置后看不出变化:

  • 需要重新连接或新开一个会话才能看到修改值。 show variables like 'long_query_time%';
  • 直接 show global variables like 'long_query_time';

查看慢查询日志:

cat -n /data/mysql/mysql-slow.log

从慢查询日志中,我们可以看到每一条查询时间高于3s 的sql语句,并可以看到执行的时间是多少。

比如上面,就表示 sql语句  select * from comic where comic_id < 1952000;  执行时间为3.902864秒,超出了我们设置的慢查询时间临界点3s,所以被记录下来了

查看有多少条慢查询记录: show global status like '%Slow_queries%';

3.日志分析工具mysqldumpslow

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

  • s: 是表示按照何种方式排序
  • c: 访问次数
  • l: 锁定时间
  • r: 返回记录
  • t: 查询时间
  • al:平均锁定时间
  • ar:平均返回记录数
  • at:平均查询时间
  • t:即为返回前面多少条的数据
  • g:后边搭配一个正则匹配模式,大小写不敏感的

工作常用参考:

  1. 得到返回记录集最多的10个SQL: mysqldumpslow -s r -t 10 /var/lib/mysql/mysql-slow.log

  2. 得到访问次数最多的10个SQL: mysqldumpslow -s c -t 10 /var/lib/mysql/mysql-slow.log

  3. 得到按照时间排序的前10条里面含有左连接的SQL: mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/mysql-slow.log

建议: 为方便 可以结合 | 和 more 使用,否则可能出现爆屏

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

转载于:https://www.cnblogs.com/dwlovelife/p/11061778.html

MySQL之SQL优化详解(一)相关推荐

  1. MySQL之SQL优化详解(二)

    目录 MySQL之SQL优化详解(二) 1. SQL的执行顺序 1.1 手写顺序 1.2 机读顺序 2. 七种join 3. 索引 3.1 索引初探 3.2 索引分类 3.3 建与不建 4. 性能分析 ...

  2. mysql索引linke和等于_MySQL之SQL优化详解(三)

    摘要: 致索引失效而转向全表扫描存储引擎不能使用索引中范围条件右边的列mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描isnull,isnotnull也无法使用索引l ...

  3. mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)

    目录 序言: 在我面试很多人的过程中,很多人谈到SQL优化都头头是道,建索引,explain分析,like全模糊会导致索引失效 云云,于是我问道:优化之前,需要找出数据库中比如超过2s的慢SQL,你是 ...

  4. 【Mysql】慢SQL优化详解 Mysql案例

    前言 影响查询性能因素 –(定量为同一数据库 且并发 数据量一致)依次是: 机器配置 查询引擎 表设计 索引 SQL语句 什么是慢SQL 比通常执行慢.或者超过最大执行限定时间,通常是500ms 慢S ...

  5. 【数据库】MySQL的sql语句详解

    目录 MySQL之sql语句 一, INSERT语句 insert语句的使用: 1,给表中一次性插入一条记录 2,给表中一次性插入多条记录 二, REPLACE语句 REPLACE语句的使用 1,语法 ...

  6. php mysql防卡_php mysql防止sql注入详解

    引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和 ...

  7. mysql切换用户sql语句,MySQL用户管理及SQL语句详解

    [(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...

  8. c语言中limit 用法,mysql limit用法及优化详解

    摘要 腾兴网为您分享:mysql limit用法及优化详解,一点万象,喜马拉雅,唯品会,图乐等软件知识,以及盟重土城花屏补丁,宝马车主俱乐部,本地文件搜索,锁定刷新率,发券,微信多开真正版,云门禁,真 ...

  9. MySQL高级之explain详解

    MySQL高级之explain详解 文章目录 MySQL高级之explain详解 一.expalin命令详解 1.使用方式 2.结果显示 3.主要的字段信息 4.作用 二.id字段 三.select_ ...

最新文章

  1. 工信部 学习类app_工信部整治APP侵权行为,私自收集个人信息等8类问题被点名...
  2. FFmpeg简介及在vc2010下编译步骤
  3. 预产期计算器在线计算生男生女计算机,预产期计算器生男生女的四种算法
  4. 在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)
  5. [转]DML DDL DCL 语言的区别
  6. 互联网晚报 | 1月29日 星期六 | 支付宝相互宝正式关停;大钲资本成瑞幸咖啡实控人;苹果创有史以来最高单季营收...
  7. 信安教程第二版-第14章恶意代码防范技术原理
  8. 系统没有安装vc9.注意是x86 32位_Windows 软件默认安装位置之谜
  9. Asp.Net MVC中DropDownListFor的用法(转)
  10. 全局光照---光线跟踪方法
  11. Ortholab has been moved to Google Code
  12. 计算机一级题库百度云0,全国计算机等级考试一级题库完整.pdf
  13. rknn模型转换问题记录
  14. 数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测
  15. AI公开课之NLP:19.04.04李航—字节跳动AILab总监《深度学习与自然语言处理:评析与展望》课堂笔记以及个人感悟
  16. 投影坐标系的shp数据,如何获取到它地理坐标系下的经纬度坐标
  17. 语法基础课——第二讲 习题
  18. Hold Time违例,该如何解决
  19. 量化投资常用技能——指标篇1:详解 MACD指标绘制、及其计算过程和作用
  20. 中国电子实验记录(ELN)系统行业研究报告(2022版)

热门文章

  1. 超实用PHP函数总结整理
  2. zend studio 10.6.2破解和汉化
  3. Javascript节点的访问
  4. 随笔2010.01.25
  5. WEB框架研究笔记七(Spring2+struts2)
  6. 【Java从0到架构师】Redis 应用 - Jedis 基本使用、使用缓存的用户登陆、缓存常见问题
  7. 报表性能优化方案之多数据集实现层式报表
  8. 基于html5的旅游交流系统,基于HTML5的旅游移动导览系统的研究与实现
  9. 量化交易策略matlab交易方案,【策略分享】Matlab量化交易策略源码分享
  10. python 保存文件 吃内存_python检测空间储存剩余大小和指定文件夹内存占用的实例...