如何使用mysqladmin ext了解MySQL运行状态

71次阅读
没有评论

共计 4227 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要介绍“如何使用 mysqladmin ext 了解 MySQL 运行状态”,在日常操作中,相信很多人在如何使用 mysqladmin ext 了解 MySQL 运行状态问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用 mysqladmin ext 了解 MySQL 运行状态”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

使用 mysqladmin ext 了解 MySQL 运行状态

mysqladmin 是 MySQL 一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解 MySQL 运行状态、进程信息、进程杀死等。本文介绍一下如何使用 mysqladmin extended-status(因为没有 歧义,所以可以使用 ext 代替) 了解 MySQL 的运行状态

1. 使用 -r/- i 参数

使用 mysqladmin extended-status 命令可以获得所有 MySQL 性能指标,即 show global status 的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是 mysqladmin extended-status 的一个额外功能,非常实用。默认的,使用 extended-status,看到也是累计值,但是,加上参数 -r(–relative),就可以看到各个指标的差值,配合参数 -i(–sleep) 就可以指定刷新的频率,那么就有如下命令:

mysqladmin -uroot -r -i 1 -pxxx extended-status
+------------------------------------------+----------------------+
| Variable_name | Value |
+------------------------------------------+----------------------+
| Aborted_clients | 0 |
| Com_select | 336 |
| Com_insert | 243 |
......
| Threads_created | 0 |
+------------------------------------------+----------------------+

2. 配合 grep 使用

配合 grep 使用,我们就有:

mysqladmin -uroot -r -i 1 -pxxx extended-status \
|grep  Questions\|Queries\|Innodb_rows\|Com_select \|Com_insert \|Com_update \|Com_delete  
| Com_delete | 1 |
| Com_delete_multi | 0 |
| Com_insert | 321 |
| Com_select | 286 |
| Com_update | 63 |
| Innodb_rows_deleted | 1 |
| Innodb_rows_inserted | 207 |
| Innodb_rows_read | 5211 |
| Innodb_rows_updated | 65 |
| Queries | 2721 |
| Questions | 2721 |

3. 配合简单的 awk 使用

使用 awk,同时输出时间信息:

mysqladmin -uroot -p -h227.0.0.1 -P3306 -r -i 1 ext |\
awk -F |   {\
 if($2 ~ /Variable_name/){\
 print    -------------   strftime(%H:%M:%S)   ------------- \
 }\
 if($2 ~ /Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete |Innodb_buffer_pool_read_requests/)\
 print $2 $3;\
 ------------- 12:38:49 ------------- 
 Com_delete 0
 Com_insert 0
 Com_select 0
 Com_update 0
 Innodb_buffer_pool_read_requests 589
 Innodb_rows_deleted 0
 Innodb_rows_inserted 2
 Innodb_rows_read 50
 Innodb_rows_updated 50
 Queries 105
 Questions 1
  ------------- 12:38:50 ------------- 
 Com_delete 0
 Com_insert 0
 Com_select 0
 Com_update 0
 Innodb_buffer_pool_read_requests 1814
 Innodb_rows_deleted 0
 Innodb_rows_inserted 0
 Innodb_rows_read 8
 Innodb_rows_updated 8
 Queries 17
 Questions 1

4. 配合复杂一点的 awk

反正也不简单了,那就更复杂一点,这样让输出结果更友好点,因为 awk 不支持动态变量,所以代码看起来比较复杂:

mysqladmin -P3306 -uroot -p -h227.0.0.1 -r -i 1 ext |\
awk -F |  \
 BEGIN{ count=0; } \
 { if($2 ~ /Variable_name/   ((++count)%20 == 1)){\
 print  ----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read -- \
 print  ---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical \
else if ($2 ~ /Queries/){queries=$3;}\
else if ($2 ~ /Com_select /){com_select=$3;}\
else if ($2 ~ /Com_insert /){com_insert=$3;}\
else if ($2 ~ /Com_update /){com_update=$3;}\
else if ($2 ~ /Com_delete /){com_delete=$3;}\
else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\
else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\
else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\
else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\
else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\
else if ($2 ~ /Innodb_buffer_pool_reads/){innodb_phr=$3;}\
else if ($2 ~ /Uptime /   count  = 2){\
 printf( %s |%9d ,strftime( %H:%M:%S),queries);\
 printf(|%6d %6d %6d %6d ,com_select,com_insert,com_update,com_delete);\
 printf(|%6d %8d %7d %7d ,innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\
 printf(|%10d %11d\n ,innodb_lor,innodb_phr);\
----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --
---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical
 10:37:13 | 2231| 274 214 70 0| 4811 160 71 0| 4146 0
 10:37:14 | 2972| 403 256 84 23| 2509 173 85 23| 4545 0
 10:37:15 | 2334| 282 232 66 1| 1266 154 67 1| 3543 0
 10:37:15 | 2241| 271 217 66 0| 1160 129 66 0| 2935 0
 10:37:17 | 2497| 299 224 97 0| 1141 149 95 0| 3831 0
 10:37:18 | 2871| 352 304 74 23| 8202 226 73 23| 6167 0
 10:37:19 | 2441| 284 233 82 0| 1099 121 78 0| 3292 0
 10:37:20 | 2342| 279 242 61 0| 1083 224 61 0| 3366 0

到此,关于“如何使用 mysqladmin ext 了解 MySQL 运行状态”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计4227字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)