Mysql-如何进行慢SQL查询
官方慢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查询相关推荐
- kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...
概述 今天主要介绍下kettle怎么去连接mysql数据库及导出sql查询结果. 1.数据库链接驱动 如果没有安装对应的数据库驱动,在数据库连接的过程中,可能会报某个数据库连接找不到的异常,因此需要下 ...
- Mysql常规27种sql查询语句
Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...
- mysql 查询执行过程_深入浅出Mysql(一)——sql查询执行过程
一.sql查询执行过程概括 下面给出的mysql基本架构示意图,从中你可以清楚的mysql的各个模块和执行过程. 大体来说可以分为两部分Server层和储存引擎层.Server层包括连接器.查询缓存. ...
- 「MySQL」- 复杂的SQL查询语句
任意门 前言 聚合查询 1.聚合函数 count函数 sum函数 avg函数 max函数 min函数 2.分组查询 having子句 多表查询 1.笛卡尔积 2.内连接 3.外连接 左外连接 右外连接 ...
- Hello MySQL(五)——SQL查询
一.单表查询 1.查询所有字段 在SELECT语句中使用星号"*"通配符查询所有字段 在SELECT语句中指定所有字段 select * from `TStudent`; 2.查询 ...
- MySQL充电_Mysql 充电站SQL查询1--171221--mysql-sql
Mysql 充电站SQL查询1--171221--mysql-sql --当月至现在查询支付成功后未成功充电的情况 select c.a 失败数,c.b 总数,c.a1,c.cs 失败率,c.cc 成 ...
- IDEA连接MySQL数据库并执行SQL查询操作
打开IDEA后,新建一个项目或者在已有项目上均可操作!!! 1 打开数据库页面 1.1 方式一 在主页面工具栏上找到View(视图)-Tool Windows(工具窗口)-Database(数据库), ...
- Mysql常用30种SQL查询语句优化方法
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...
- MySQL 常用30种SQL查询语句优化方法
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及 ...
- 【MySQL】一条SQL查询本年度每月即将退休的人数?
通过SQL来查询本年度员工退休情况统计,其中男性60周岁退休,女性副处级以上(含副处)60周岁退休,副处级以下则是55周岁退休. 0.本年度第一天 $year_start = date('Y-01-0 ...
最新文章
- c语言作业扩展名通常为什么,C语言的源程序通常的扩展名是( )
- IntelliJ IDEA上操作GitHub
- lor: 一个基于OpenResty的lua framework
- PieLove 之 数据分析帝.(ZZ)(is2120)
- TortoiseGit清除账号密码
- SAP销项税多科目配置
- tms570 can 接收大量数据_CAN通讯系列--AUTOSAR架构的CAN Interface7
- DISTINCT 去掉重复记录
- 从全景相机领先者到大幅裁员,完美幻境经历了什么?
- Python为什么是编程语言中最skr的?
- cocoscreator editbox 只允许数字_用Cocos做一个数字调节框
- www万维网和HTTP协议
- 毕马威_【毕马威快讯】毕马威发布个人信息保护法(草案)概览
- 苏炳添成为小米代言人
- 解决“Cmake error :generator: Ninja“问题
- 推荐LaTeX在线编辑器
- Verilog算法入门
- 学生管理系统Element UI版
- Sql Server Report Builder 计算标准偏差
- 客户端到服务器端的通信过程及 原理图很好
热门文章
- 【JAVA】集合框架及复杂度
- java学习总结之集合框架
- Win11分磁盘怎么分?Win11系统怎么分磁盘?
- oracle递归查询(层级查询)
- 关于dell戴尔笔记本磁盘空间莫名被占及删除System Volume Information
- 异构数据库、异构数据源、分布式数据库三者的辨析区别
- ATTCK v10版本战术介绍执行(下篇)
- 如何在 Android 上恢复删除屏幕截图/照片的四种方式
- 音视频开发系列(7):完成本地摄像头直播推流
- 12.0_[Java 多态]-多态/子类父类互转/基本引用类型互转/ instanceof 运算符