慢查询分析、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,内存消耗等。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容