官方慢SQl查询

打开慢日志开关

因为开启慢查询日志是有代价的(跟 bin log、optimizer-trace 一样),所以它默认是关闭的:

show variables like 'slow_query%';

除了这个开关,还有一个参数,控制执行超过多长时间的 SQL 才记录到慢日志,默认是 10 秒。

除了这个开关,还有一个参数,控制执行超过多长时间的 SQL 才记录到慢日志,默认是 10 秒。

show variables like '%long_query%';
可以直接动态修改参数(重启后失效)。
set @@global.slow_query_log=1; -- 1 开启,0 关闭,重启后失效
set @@global.long_query_time=3; -- mysql 默认的慢查询时间是 10 秒,另开一个窗口后才会查到最新值 show variables like '%long_query%';
show variables like '%slow_query%';
或者修改配置文件 my.cnf。
以下配置定义了慢查询日志的开关、慢查询的时间、日志文件的存放路径。
slow_query_log = ON
long_query_time=2
slow_query_log_file =/var/lib/mysql/localhost-slow.log
模拟慢查询:
select sleep(10);
查询 user_innodb 表的 500 万数据(检查是不是没有索引)。
SELECT * FROM `user_innodb` where phone = '136';

慢日志分析

1、日志内容

show global status like 'slow_queries'; -- 查看有多少慢查询
show variables like '%slow_query%'; -- 获取慢日志目录
cat /var/lib/mysql/ localhost-slow.log

有了慢查询日志,怎么去分析统计呢?比如 SQL 语句的出现的慢查询次数最多,平均每次执行了多久?人工肉眼分析显然不可能。

2、mysqldumpslow

官方分析

MySQL 提供了 mysqldumpslow 的工具,在 MySQL 的 bin 目录下。

mysqldumpslow --help

例如:查询用时最多的 10 条慢 SQL:

mysqldumpslow -s t -t 10 -g 'select' /var/lib/mysql/localhost-slow.log

Count 代表这个 SQL 执行了多少次;

Time 代表执行的时间,括号里面是累计时间;

Lock 表示锁定的时间,括号是累计;

Rows 表示返回的记录数,括号是累计。

除了慢查询日志之外,还有一个 SHOW PROFILE 工具可以使用

Mysql-如何进行慢SQL查询相关推荐

  1. kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...

    概述 今天主要介绍下kettle怎么去连接mysql数据库及导出sql查询结果. 1.数据库链接驱动 如果没有安装对应的数据库驱动,在数据库连接的过程中,可能会报某个数据库连接找不到的异常,因此需要下 ...

  2. Mysql常规27种sql查询语句

    Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...

  3. mysql 查询执行过程_深入浅出Mysql(一)——sql查询执行过程

    一.sql查询执行过程概括 下面给出的mysql基本架构示意图,从中你可以清楚的mysql的各个模块和执行过程. 大体来说可以分为两部分Server层和储存引擎层.Server层包括连接器.查询缓存. ...

  4. 「MySQL」- 复杂的SQL查询语句

    任意门 前言 聚合查询 1.聚合函数 count函数 sum函数 avg函数 max函数 min函数 2.分组查询 having子句 多表查询 1.笛卡尔积 2.内连接 3.外连接 左外连接 右外连接 ...

  5. Hello MySQL(五)——SQL查询

    一.单表查询 1.查询所有字段 在SELECT语句中使用星号"*"通配符查询所有字段 在SELECT语句中指定所有字段 select * from `TStudent`; 2.查询 ...

  6. MySQL充电_Mysql 充电站SQL查询1--171221--mysql-sql

    Mysql 充电站SQL查询1--171221--mysql-sql --当月至现在查询支付成功后未成功充电的情况 select c.a 失败数,c.b 总数,c.a1,c.cs 失败率,c.cc 成 ...

  7. IDEA连接MySQL数据库并执行SQL查询操作

    打开IDEA后,新建一个项目或者在已有项目上均可操作!!! 1 打开数据库页面 1.1 方式一 在主页面工具栏上找到View(视图)-Tool Windows(工具窗口)-Database(数据库), ...

  8. Mysql常用30种SQL查询语句优化方法

    1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...

  9. MySQL 常用30种SQL查询语句优化方法

    1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及 ...

  10. 【MySQL】一条SQL查询本年度每月即将退休的人数?

    通过SQL来查询本年度员工退休情况统计,其中男性60周岁退休,女性副处级以上(含副处)60周岁退休,副处级以下则是55周岁退休. 0.本年度第一天 $year_start = date('Y-01-0 ...

最新文章

  1. c语言作业扩展名通常为什么,C语言的源程序通常的扩展名是( )
  2. IntelliJ IDEA上操作GitHub
  3. lor: 一个基于OpenResty的lua framework
  4. PieLove 之 数据分析帝.(ZZ)(is2120)
  5. TortoiseGit清除账号密码
  6. SAP销项税多科目配置
  7. tms570 can 接收大量数据_CAN通讯系列--AUTOSAR架构的CAN Interface7
  8. DISTINCT 去掉重复记录
  9. 从全景相机领先者到大幅裁员,完美幻境经历了什么?
  10. Python为什么是编程语言中最skr的?
  11. cocoscreator editbox 只允许数字_用Cocos做一个数字调节框
  12. www万维网和HTTP协议
  13. 毕马威_【毕马威快讯】毕马威发布个人信息保护法(草案)概览
  14. 苏炳添成为小米代言人
  15. 解决“Cmake error :generator: Ninja“问题
  16. 推荐LaTeX在线编辑器
  17. Verilog算法入门
  18. 学生管理系统Element UI版
  19. Sql Server Report Builder 计算标准偏差
  20. 客户端到服务器端的通信过程及 原理图很好

热门文章

  1. 【JAVA】集合框架及复杂度
  2. java学习总结之集合框架
  3. Win11分磁盘怎么分?Win11系统怎么分磁盘?
  4. oracle递归查询(层级查询)
  5. 关于dell戴尔笔记本磁盘空间莫名被占及删除System Volume Information
  6. 异构数据库、异构数据源、分布式数据库三者的辨析区别
  7. ATTCK v10版本战术介绍执行(下篇)
  8. 如何在 Android 上恢复删除屏幕截图/照片的四种方式
  9. 音视频开发系列(7):完成本地摄像头直播推流
  10. 12.0_[Java 多态]-多态/子类父类互转/基本引用类型互转/ instanceof 运算符