MYSQL常用的效能指標總結和歸納

chenfeng發表於2017-08-22
(1) QPS(每秒Query量)
QPS = Questions(or Queries) / uptime
mysql> show global status like 'Question%';
mysql> show global status like 'uptime';

(2) TPS(每秒事務量)
TPS = (Com_commit + Com_rollback) / uptime
mysql > show global status like 'Com_commit';
mysql > show global status like 'Com_rollback';
mysql> show global status like 'uptime';
 
(3)key Buffer 命中率
mysql>show  global  status  like  'key%';
key_buffer_read_hits = (1-key_reads /key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes /key_write_requests) * 100%
 
(4)InnoDB Buffer命中率
mysql> show status like 'innodb_buffer_pool_read%';
innodb_buffer_read_hits = (1 -innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%
 
(5)Query Cache命中率
mysql> show status like 'Qcache%';
Query_cache_hits = (Qcahce_hits /(Qcache_hits + Qcache_inserts )) * 100%;
 
(6)Table Cache狀態量
mysql> show global  status like 'open%';
比較 open_tables  與opend_tables值
 
(7)Thread Cache 命中率
mysql> show global status like'Thread%';
mysql> show global status like'Connections';
Thread_cache_hits = (1 - Threads_created /connections ) * 100%
 
(8)鎖定狀態
mysql> show global  status like '%lock%';
Table_locks_waited/Table_locks_immediate=0.3%  如果這個比值比較大的話,說明表鎖造成的阻塞比較嚴重
Innodb_row_lock_waits innodb行鎖,太大可能是間隙鎖造成的
 
(9)複製延時量
mysql > show slave status
檢視Seconds_Behind_Master的值,如果為0,說明沒有延遲
 
(10) Tmp Table 狀況(臨時表狀況)
mysql > show global status like 'Created_tmp%';
Created_tmp_disk_tables/Created_tmp_tables比值最好不要超過10%,如果Created_tmp_tables值比較大,
可能是排序句子過多或者是連線句子不夠最佳化
 
(11) Binlog Cache 使用狀況
mysql > show global status like 'Binlog_cache%';
如果Binlog_cache_disk_use值不為0 ,可能需要調大 binlog_cache_size大小
 
(12) Innodb_log_waits 量
mysql > show status like'innodb_log_waits';
Innodb_log_waits值不等於0的話,表明 innodblog  buffer 因為空間不足而等待
 
(13)open file and table
mysql> show global status like 'Open_files';
mysql> show global status like 'Open_tables';
 
(14) 慢查詢 
開啟慢查詢:
1).手動執行命令開啟:
mysql> set global slow_query_log=on;
mysql> set global long_query_time=1;

2).編輯/etc/my.cnf,在[mysqld]域中新增:
slow_query_log= 1   # 開啟慢查詢
slow_query_log_file=/data/data/localhost-slow.log   # 慢查詢日誌路徑
long_query_time= 1        # 慢查詢的時長


(15)全日誌
檢視全日誌:
  show global variables like 'general_log';
開啟全日誌:
    set global general_log=on;
注意開啟全日誌會消耗伺服器效能,一般只有在排查問題時才會短暫開啟。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2143928/,如需轉載,請註明出處,否則將追究法律責任。

相關文章