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\n",innodb_lor,innodb_phr);}}'

輸出結果以下:mysql

----------|---------|--- 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的執行頻率,經過上面的執行結果來看,我如今主要是讀比較頻繁。好了,就說到這裏了。^_^算法

相關文章
相關標籤/搜索