mysql performance_schema幾個性能關注點

events_statements_summary_by_digest:按照事件的語句進行聚合。

 表結構如下:

CREATE TABLE `events_statements_summary_by_digest` (
  `SCHEMA_NAME` varchar(64) DEFAULT NULL COMMENT '庫名',
  `DIGEST` varchar(32) DEFAULT NULL COMMENT '對SQL_TEXT做MD5產生的32位字符串。如果爲consumer表中沒有打開statement_digest選項,則爲NULL',
  `DIGEST_TEXT` longtext COMMENT '將語句中值部分用問號代替,用於SQL語句歸類。如果爲consumer表中沒有打開statement_digest選項,則爲NULL。',
  `COUNT_STAR` bigint(20) unsigned NOT NULL COMMENT '事件計數',
  `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL COMMENT '總的等待時間',
  `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL COMMENT '最小等待時間',
  `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL COMMENT '平均等待時間',
  `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL COMMENT '最大等待時間',
  `SUM_LOCK_TIME` bigint(20) unsigned NOT NULL COMMENT '鎖時間總時長',
  `SUM_ERRORS` bigint(20) unsigned NOT NULL COMMENT '錯誤數的總',
  `SUM_WARNINGS` bigint(20) unsigned NOT NULL COMMENT '警告的總數',
  `SUM_ROWS_AFFECTED` bigint(20) unsigned NOT NULL COMMENT '影響的總數目',
  `SUM_ROWS_SENT` bigint(20) unsigned NOT NULL COMMENT '返回總數目',
  `SUM_ROWS_EXAMINED` bigint(20) unsigned NOT NULL COMMENT '總的掃描的數目',
  `SUM_CREATED_TMP_DISK_TABLES` bigint(20) unsigned NOT NULL COMMENT '創建磁盤臨時表的總數目',
  `SUM_CREATED_TMP_TABLES` bigint(20) unsigned NOT NULL COMMENT '創建臨時表的總數目',
  `SUM_SELECT_FULL_JOIN` bigint(20) unsigned NOT NULL COMMENT '第一個表全表掃描的總數目',
  `SUM_SELECT_FULL_RANGE_JOIN` bigint(20) unsigned NOT NULL COMMENT '總的採用range方式掃描的數目',
  `SUM_SELECT_RANGE` bigint(20) unsigned NOT NULL COMMENT '第一個表採用range方式掃描的總數目',
  `SUM_SELECT_RANGE_CHECK` bigint(20) unsigned NOT NULL COMMENT '',
  `SUM_SELECT_SCAN` bigint(20) unsigned NOT NULL COMMENT '第一個表位全表掃描的總數目',
  `SUM_SORT_MERGE_PASSES` bigint(20) unsigned NOT NULL COMMENT '',
  `SUM_SORT_RANGE` bigint(20) unsigned NOT NULL COMMENT '範圍排序總數',
  `SUM_SORT_ROWS` bigint(20) unsigned NOT NULL COMMENT '排序的記錄總數目',
  `SUM_SORT_SCAN` bigint(20) unsigned NOT NULL COMMENT '第一個表排序掃描總數目',
  `SUM_NO_INDEX_USED` bigint(20) unsigned NOT NULL COMMENT '沒有使用索引總數',
  `SUM_NO_GOOD_INDEX_USED` bigint(20) unsigned NOT NULL COMMENT '',
  `FIRST_SEEN` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '第一次執行時間',
  `LAST_SEEN` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最後一次執行時間'
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8;

 

關於SQL維度的統計信息主要集中在events_statements_summary_by_digest表中,通過將SQL語句抽象出digest,可以統計某類SQL語句在各個維度的統計信息:
哪個SQL執行最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest
 ORDER BY COUNT_STAR desc LIMIT 1\G
 
 
 
 
 
哪個SQL平均響應時間最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest 
ORDER BY AVG_TIMER_WAIT desc LIMIT 1\G
 
 
 
 
哪個SQL掃描的行數最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest
 ORDER BY SUM_ROWS_EXAMINED desc LIMIT 1\G
 
 
 
哪個SQL使用的臨時表最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest 
ORDER BY SUM_CREATED_TMP_DISK_TABLES、SUM_CREATED_TMP_TABLES desc LIMIT 1\G
 
 
 
哪個SQL返回的結果集最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest 
ORDER BY SUM_ROWS_SENT desc LIMIT 1\G
 
 
 
哪個SQL排序數最多:
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest 
ORDER BY SUM_SORT_ROWS desc LIMIT 1\G
 
 
 
哪個表、文件邏輯IO最多(熱數據):
SELECT FILE_NAME,EVENT_NAME,COUNT_READ,SUM_NUMBER_OF_BYTES_READ,COUNT_WRITE,SUM_NUMBER_OF_BYTES_WRITE FROM file_summary_by_instance ORDER BY
 SUM_NUMBER_OF_BYTES_READ+SUM_NUMBER_OF_BYTES_WRITE DESC LIMIT 2\G
 
 
 
哪個索引使用最多:
SELECT OBJECT_NAME, INDEX_NAME, COUNT_FETCH, COUNT_INSERT, COUNT_UPDATE, COUNT_DELETE FROM table_io_waits_summary_by_index_usage ORDER BY 
SUM_TIMER_WAIT DESC limit 1;
 
 
 
哪個索引沒有使用過:
SELECT OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME FROM table_io_waits_summary_by_index_usage WHERE INDEX_NAME IS NOT NULL AND COUNT_STAR = 0 
AND OBJECT_SCHEMA <> 'mysql' ORDER BY OBJECT_SCHEMA,OBJECT_NAME;
 
 
 
哪個等待事件消耗的時間最多:
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, AVG_TIMER_WAIT FROM events_waits_summary_global_by_event_name WHERE event_name != 'idle' 
ORDER BY SUM_TIMER_WAIT DESC LIMIT 1;

 

先寫幾個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章