1、jemter 压接口

2、服务器 top命令查看到 sql暂用cpu偏高  (cpu突破百分之100,因为服务期是多核的, 4个核最大可以400%)

1分钟 5分钟 15分钟

mysql 查看慢sql记录 如何查看慢sql_SQL

 

 

2、查看阿里云数据库服务器

slow queries 慢sql

locks 死锁

mysql 查看慢sql记录 如何查看慢sql_SQL_02

 

 

 

3、连上数据库

查看是否开启慢sql记录 和 设置时间

SHOW VARIABLES LIKE '%QUERY%'

mysql 查看慢sql记录 如何查看慢sql_慢查询_03

查看慢sql语句

SELECT * from mysql.slow_log;

mysql 查看慢sql记录 如何查看慢sql_慢查询_04

 

后记:

如果 sql_text 展示的是blob,那么得把它转成txt文字展示

SELECT start_time,db,CONVERT(sql_text using utf8)

 

 

4、取出慢sql 查看,先执行看多少秒,然后选中,点击【解释已选择的】查看具体问题

mysql 查看慢sql记录 如何查看慢sql_mysql_05

 

命令的话是 加关键字  EXPLAIN 查看 查询计划: 和上面点击 [解析已选择的] 效果一样

EXPLAIN
select * FROM man

 

5、让开发优化后继续压看效果

 

彩蛋:

如果发现是root的任务占用cpu偏高

mysql 查看慢sql记录 如何查看慢sql_慢查询_06

 

 https://www.bilibili.com/video/BV1xV411m7eo/?spm_id_from=333.788.videocard.0

 

 

https://mp.weixin.qq.com/s/iRV-M8bKB2fNxgMBnieEvw

 

 

 

 

 

后记录:

 

查看是否开启慢 SQL

SHOW VARIABLES LIKE ‘slow_query%’;

修改状态:

set global slow_query_log='ON';   (ON 、OFF)

SET GLOBAL slow_query_log=1;   (开1 、0 关)

 

查看慢sql阀值

show VARIABLES LIKE ‘%long_query_time%’

设置阀值:
SET GLOBAL long_query_time = 1;    

设置为0表示记录所有的查询,long_query_time参数修改完成后需要重新打开一个窗口进行查询才能看到效果

 

查看一共执行过几次慢查询
show global status like ‘%slow%’;

 

设置日志路径

set global slow_query_log_file='/usr/local/mysql/data/localhost-slow.log'

 

 

查看日志输出类型

show VARIABLES like ‘%log_output%’

指定日志保存形式,FILE,TABLE,NONE

set global log_output="TABLE"

 

查看保存到 Table 中的 慢 SQL,仅日志保存形式为 Table 时生效

SELECT * from mysql.slow_log

 

查看慢查询
cat /var/log/mysql/slow.log

SHOW VARIABLES LIKE '%QUERY%' -----(其实直接这个也行)

 

 

索引

EXPLAIN
SELECT name,value FROM sys_dict where

-- 显示索引信息
SHOW INDEX FROM sys_dict;

-- 添加和修改索引
ALTER table sys_dict ADD INDEX indexName2(`value`); 

ALTER 表名 ADD INDEX 索引名(表字段); 

 

-- 删除索引
DROP INDEX indexName2 ON sys_dict

 

添加索引

create index idx_seller_name on man(name);

create index 索引的名称 on 表名(字段名);

mysql 查看慢sql记录 如何查看慢sql_mysql_07

 

 

这个挺全的

https://www.yuque.com/bugmao/fuhmmy/tb4w60

 

一、SQL执行频率

通过以下语句,可以 查询数据库各种类型 SQL语句的执行频率。

Com后面 7个_

SHOW GLOBAL STATUS LIKE 'Com_______';

二、慢查询日志

查询时间超过指定参数(long_query_time , 默认10秒)时间的SQL语句 被称为慢查询语句。

MySQL慢查询日志默认关闭,需要手动开启。

 

vim /etc/my.cnf

#启动慢查询日志
slow_query_log=1

#设置时间为2秒,执行时间超过2秒被视为慢查询,记录到日志中
long_query_time=2
#配置保存后,需要重启mysql服务

#慢查询日志
less /var/lib/mysql/localhost-slow.log

 

 

三、profile详情

SELECT @@have_profiling;     --查看数据库是否支持profile

SELECT @@profiling;              --查看数据库是否已经开启profile开关,0表示关闭

SET profiling=1;            --打开profile

 

开启profile之后,就可以通过show profile,查看SQL执行耗时情况。

SHOW profiles;

mysql 查看慢sql记录 如何查看慢sql_mysql_08

 

查看指定query_id的SQL语句各个阶段的耗时情况

SHOW profile for query 8;    --查看query_ID=8的SQL语句每一个步骤耗时情况
SHOW profile cpu for query 8;  --看每一步对应的CPU使用情况

mysql 查看慢sql记录 如何查看慢sql_慢查询_09

 

 

四、explain执行计划查看***

EXPLAIN SELECT * FROM tableA;
DESC SELECT * FROM tableA;
--以上效果一样

查询结果如下

mysql 查看慢sql记录 如何查看慢sql_mysql 查看慢sql记录_10

mysql 查看慢sql记录 如何查看慢sql_SQL_11