首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【高性能MySQL】性能剖析SHOW STATUS

【高性能MySQL】性能剖析SHOW STATUS

原创
作者头像
用户9295575
修改2025-01-13 21:27:12
修改2025-01-13 21:27:12
3430
举报

SHOW STATUS 命令有什么用?

show status 命令返回一些会话级别的计数器。可以显示某些活动如读索引的频繁程度,但无法给出消耗了多少时间。

show global status 命令返回的是服务器级别的全局计数器。可以查看服务器级别的从服务器启动时开始计算的查询次数统计。无法给出消耗了多少时间。

最有用的计数器包括句柄计数器,临时文件和表计数器等。下面的例子展示如何将会话级别的计数器重置为0,然后查询视图,再检查计数器的结果:

代码语言:sql
复制
mysql> FLUSH STATUS;
mysql> SELECT * FROM USER_VIEW;
mysql> SHOW STATUS WHERE Variable_name LIKE 'Handler%' OR Variable_name LIKE 'Created%';

+----------------------------+-------+
| Variable_name              | Value |
| Created_tmp_disk_tables    | 2     |
| Created_tmp_files          | 0     |
| Created_tmp_tables         | 3     |
| Handler_commit             | 1     |
| Handler_delete             | 0     |
| Handler_discover           | 0     |
| Handler_prepare            | 0     |
| Handler_read_first         | 1     |
| Handler_read_key           | 7286  |
| Handler_read_next          | 6534  |
| Handler_read_prev          | 0     |
| Handler_read_rnd           | 5426  |
| Handler_read_rnd_next      | 6421  |
| Handler_rollback           | 0     |
| Handler_savepoint          | 0     | 
| Handler_savepoint_rollback | 0     |
| Handler_update             | 0     |
| Handler_write              | 6459  |
+----------------------------+-------+

从结果可以看出使用了3个临时表,其中两个是磁盘临时表。有很多没有用到索引的读操作(Handler_read_rnd_next)。可以猜测这个查询做了多表联查,并没有用合适的索引,其中一个子查询创建了临时表,然后和其他表联合查询。用于保存子查询结果的临时表没有索引。

注意show status本身也会创建一个临时表,也会通过句柄操作访问临时表,这会影响show status结果中的数字。

其他获取性能报告途径

获得性能剖析报告后,怎么使用?

好的剖析报告能够将潜在的问题现实出来,但最终的解决方案还是需要用户来决定。优化查询时用户需要对服务器如何执行查询有较深的了解。剖析报告能够尽可能多的收集需要的信息,给出诊断问题的正确方向,以及为其他工具如EXPLAINT提供基础信息。

每天学习一点,每天进步一点!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档