mysql_SQL性能分析
1、sql执行频率
MySQL客户端连接成功后,通过show [ sessionlglobal ] status 命令可以提供服务器状态信息。通过如下指令,可以查询当前数据库的 insert 、UPDATE 、DELETE 、SELECT 的访问频次。
SHOW GLOBAL STATUS LIKE 'com_______'; (7个下划线)
2、慢查询日志
慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志。
MySQL的慢查询日志默认没有开启,需要MySQL的配置文件(/etc/my.cnf)中配置。
查询是否开启: show variables like 'slow_query_log';
配置中加入如下:(配置完后重启sql)
# 开启MySQL慢日志查询开关 show_query_log=1 # 设置慢日志的时间为2秒,sql语句执行时间超过2秒,就会视为慢查询,记录慢查询日志。 long_query_time=2
3、profile详情
show profile 能够在做sql优化时帮助我们了解事件都耗费在哪里了。通过have_profiling 参数,能够看到当前mysql是否支持profile操作。
show @@have_profiling;
默认profiling是关闭的,可以通过set语句在session/global级别开启profiling.
set profiling = 1;
执行一系列的业务sql的操作,然后通过如下指令查看的执行耗时;
查看每一条sql的耗时基本情况: show profiles;
查看指定query_id 的sql语句各个阶段的耗时情况: show profile for query_id;
查看指定query_id 的sql语句CPU的使用情况: show profile cpu for query query_id;
4、explain执行计划
explain 或者desc ,命令获取mysql如何执行select语句的信息,包括在select语句执行过程中表如何连接和连接的顺序。
直接在select语句之前加上关键字explain / desc。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!