打开Profile
# 打开Profile
set profiling = 1;
执行sql语句
# 执行sql语句
sql语句分析
# sql分析
show profiles;
如图:
sql语句执行的每个过程的时间
# sql语句执行的每个过程的时间
show profile for query 5;
如图:
分析过程
# 分析过程
show profile all for query 5;
关闭监控
set profiling = 0;
如图:
缺陷
开启 Explain
explain
[sql语句];
# 例如
explain
select * from Table;
如图:
字段名称 | 备注 |
---|---|
id | sql执行顺序编号 |
select_type | 查询类型 |
table | 表名 |
partitions | 分区 |
type | 是否使用索引 |
possible_keys | 可能使用的索引名称 |
key | 最终决定要使用的索引名称 |
key_len | 查询索引使用的字节数,通常是越少越好 尽量在INT类型上添加索引 |
ref | 查询的列或常量 |
rows | 需要扫描的行数 |
filtered | 过滤 |
extra | 额外的信息 |
查询系统是否开启了慢查询
show variables like '%slow_query_log%';
如图:
开启慢查询
#开启 [0:关闭 1:开启]
set global slow_query_log = 1;
如图:
可以过修改mysql配置文件设置慢查询的开启、文件的存储路径和监控时间,并重启mysql服务
执行慢SQL语句