一个简易的MysQL性能查询脚本

Posted SlowTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简易的MysQL性能查询脚本相关的知识,希望对你有一定的参考价值。

如下:

#!/bin/sh
mysqladmin -P3306 -uroot -ppassword  -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);}}

 

输出如下:

技术分享

 

这个脚本主要利用了mysqladmin提供的功能

-r, --relative      Show difference between current and previous values when
                      used with -i. Currently only works with extended-status.
extended-status       Gives an extended status message from the server

ext是extended-status的缩写~

以上是关于一个简易的MysQL性能查询脚本的主要内容,如果未能解决你的问题,请参考以下文章

简易中控紫猫插件版基本思路介绍

mysql数据库运行性能检查脚本

性能测试——nGrinder的简易使用

性能测试——nGrinder的简易使用

yargs 简易指南:撸一个CLI

yargs 简易指南:撸一个CLI