zoukankan      html  css  js  c++  java
  • SHOW STATUS 查看各种类型SQL执行的频率

    通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extendedstatus 命令获得。SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。
    以下几个参数对 Myisam 和 Innodb 存储引擎都计数:
    1. Com_select 执行 select 操作的次数,一次查询只累加 1;
    2. Com_insert 执行 insert 操作的次数,对于批量插入的 insert 操作,只累加一次;
    3. Com_update 执行 update 操作的次数;
    4. Com_delete 执行 delete 操作的次数;

    以下几个参数是针对 Innodb 存储引擎计数的,累加的算法也略有不同:
    1. Innodb_rows_read select 查询返回的行数;
    2. Innodb_rows_inserted 执行 Insert 操作插入的行数;
    3. Innodb_rows_updated 执行 update 操作更新的行数;
    4. Innodb_rows_deleted 执行 delete 操作删除的行数;

    通过以上几个参数,可以很容易的了解当前数据库的应用是以插入更新为主还是
    以查询操作为主,以及各种类型的 SQL 大致的执行比例是多少。对于更新操作的计数 ,是对执行次数的计数,不论提交还是回滚都会累加。
    对于事务型的应用,通过 Com_commit 和 Com_rollback 可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。
    此外,以下几个参数便于我们了解数据库的基本情况:
    1. Connections 试图连接 Mysql 服务器的次数
    2. Uptime 服务器工作时间
    3. Slow_queries 慢查询的次数
     
    下面是将操作命令脚本化了,而且实时动态输出:
    mysqladmin -h127.0.0.1 -r -i 2 extended-status |awk -F "|" 'BEGIN { count=0; } { if($2 ~ /Variable_name/ && ++count%15 == 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("|%8d %7d %7d %7d",innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted); printf("|%10d %11d
    ",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
     09:32:20 |       92|     8      8     15      0|      15       8      15       0|      2465           0
     09:32:22 |        3|     1      0      0      0|       0       0       0       0|        56           0
     09:32:24 |       11|     3      0      2      0|      10       0       2       0|        70           0
     09:32:26 |       51|    25      0      0      0|      38       0       0       0|       110           0
     09:32:28 |        7|     3      0      0      0|       0       0       0       0|        30           0
     09:32:30 |        5|     2      0      0      0|       0       0       0       0|        20           0
     09:32:32 |        6|     1      0      0      0|      28       0       0       0|       100           0
     09:32:34 |       33|     0      0     16      0|      24       0      16       0|       205           0
     09:32:36 |        7|     3      0      0      0|       2       0       0       0|        11           0
     09:32:38 |        9|     4      0      0      0|       2       0       0       0|        55           0
     09:32:40 |      117|    10     10     18      0|      18      10      18       0|      1907           0
     09:32:42 |      516|   506      0      0      0|      41       0       0       0|      1280           0
     09:32:44 |       21|     2      0      8      0|      18       0       8       0|       158           0
     09:32:46 |       17|     0      0      8      0|       8       0       8       0|        84           0
    ----------|---------|--- MySQL Command Status --|----- Innodb row operation -----|-- Buffer Pool Read --
    ---Time---|---QPS---|select insert update delete|   read inserted updated deleted|   logical    physical
     09:32:48 |       24|     3      9      4      0|       6       0       4       0|        50           0
     09:32:50 |       81|     1     71      2      0|      50       0       2       0|        85           0
     09:32:52 |      107|   103      0      0      0|       2       0       0       0|        10           0
     09:32:54 |       91|     8      6     20      0|      28       6      20       0|      1393           0
     09:32:56 |       20|     5      0      3      0|     176       0       3       0|       764           0
     09:32:58 |       14|     2      0      4      1|       6       0       4       2|        85           0
     09:33:00 |       11|     2      0      3      0|       3       0       3       0|        51           0
     09:33:02 |        1|     0      0      0      0|       0       0       0       0|         0           0
     09:33:04 |        1|     0      0      0      0|       0       0       0       0|       786           0
     09:33:06 |        7|     1      0      2      0|      16       0       2       0|        59           0

    可以清楚的看见QPS,以及各种SQL的执行频率,通过上面的执行结果来看,我现在主要是读比较频繁。好了,就说到这里了。^_^

  • 相关阅读:
    滚动到Table的某个位置
    前端导出可修改样式的Excel表格
    在vue中绑定weui的class
    html5的消息通知
    在nginx上部署页面,使用ip访问页面,实现跨设备访问本地静态页面
    用原生javascript实现get请求,及具体数据的获取
    vue中如何实现图片不存在时显示一个默认的图片
    css选择器
    javascript 类型及类型判断
    CSS
  • 原文地址:https://www.cnblogs.com/gomysql/p/3629981.html
Copyright © 2011-2022 走看看