慢查询分析、explain索引命中、mysql数据库CPU查看

1. explain:查看执行计划

explain select * from users where user_id in (select user_id from users_role);
explain

主要看:
Extra:是否使用了索引
rows:命中行数
key: 实际使用的索引。
possible_keys:显示可能应用在这张表中的索引。
key_len : 使用的索引的长度。
PS:utf-8中:
char (n)一个字符三个字节,外加一个默认为NULL则会多一个字节,索引长度就是n3+1,不要默认值,就不加1。
varchar(n)一个字符三个字节,由于varchar类型需要额外的2字节来存储值的的长度,索引长度就是n
3+2+1,默认值同上。
数字长度索引如下:

数字索引

慢查询分析

首先打开慢查询,设置慢查询时间(默认10s),查看日志,日志可以写在文件中,也可以存在数据库中。
可以在数据库的配置文件中设置。
也可以在命令行中直接修改,但是重启mysql后,就会失效。

show variables like "%slow%"; # 查看慢查询状态是否打开,存储位置
show variables like "long_query_time";# 查看慢查询的过滤时间,大于该时间的都会保存到日志中。
set global long_query_time=0.2;#修改慢查询的过滤时间。
set global slow_query_log=1;# 打开慢查询。

查询语句的cpu消耗

set profiling = 1;# 打开查看profiles查询日志
show variables like "%pro%";#查看profile状态
打开profile之后,就会保存之后的每条数据库操作语句记录
show profiles;#查看记录的每一条
show profile for query 1;# 显示第一条的占用记录
show profile cpu,block io,memory,swaps,context switches,source for query 3;# 查询第三条的cpu占用,io,内存消耗等。

你可能感兴趣的:(慢查询分析、explain索引命中、mysql数据库CPU查看)