慢sql 查找的方法(待完成) --有空学习下sql优化,看下底部小夕的文章 还有索引

1、jemter 压接口

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

1分钟 5分钟 15分钟

 

 

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

slow queries 慢sql

locks 死锁

 

 

 

3、连上数据库

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

SHOW VARIABLES LIKE '%QUERY%'

查看慢sql语句

SELECT * from mysql.slow_log;

 

后记:

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

SELECT start_time,db,CONVERT(sql_text using utf8) from mysql.slow_log LIMIT 1000;

 

 

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

 

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

EXPLAIN
select * FROM man

 

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

 

彩蛋:

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

 

 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 表名(字段名);

 

 

这个挺全的

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

 

一、SQL执行频率

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

Com后面 7个_

 
posted @ 2020-12-17 15:10  凯宾斯基  阅读(550)  评论(0编辑  收藏  举报