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)
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个_
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;
查看指定query_id的SQL语句各个阶段的耗时情况
SHOW profile for query 8; --查看query_ID=8的SQL语句每一个步骤耗时情况
SHOW profile cpu for query 8; --看每一步对应的CPU使用情况
四、explain执行计划查看***
EXPLAIN SELECT * FROM tableA;
DESC SELECT * FROM tableA;
--以上效果一样
查询结果如下