<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      案例詳細說明MySQL5.7中 performance與sys schema中的監控參數

      [摘要]本文所要和大家分享的內容希望能幫助到大家,在MySQL5.7中,performance schema有很大改進,包括引入大量新加入的監控項、降低占用空間和負載,以及通過新的sys schema機制顯...
      本文所要和大家分享的內容希望能幫助到大家,在MySQL5.7中,performance schema有很大改進,包括引入大量新加入的監控項、降低占用空間和負載,以及通過新的sys schema機制顯著提升易用性。下面通過本文給大家介紹 MySQL5.7中 performance和sys schema中的監控參數解釋,需要的朋友可以參考下。

      1、performance schema:介紹

      在MySQL5.7中,performance schema有很大改進,包括引入大量新加入的監控項、降低占用空間和負載,以及通過新的sys schema機制顯著提升易用性。在監控方面,performance schema有如下功能:

      ①:元數據鎖:

      對于了解會話之間元數據鎖的依賴關系至關重要。從MySQL5.7.3開始,就可以通過metadata_locks表來了解元數據鎖的相關信息;

      --哪些會話擁有哪些元數據鎖
      --哪些會話正在等待元數據鎖
      --哪些請求由于死鎖被殺掉,或者鎖等待超時而被放棄

      ②:進度跟蹤:

      跟蹤長時間操作的進度(比如alter table),從MySQL5.7.7開始,performance schema自動提供了語句進度信息。我們可以通過events_stages_current表來查看當前事件的進度信息;

      ③:事務:

      監控服務層和存儲引擎層事務的全部方面。從MySQL5.7.3開始,新增了 events_transactions_current表,可以通過setup_consumers、setup_instruments表打開事務監控,通過該表查詢到當前事務的狀態。如果線上數據庫遇到undo log大量增長、數據庫性能急劇下降的情況,可以通過該表查詢當前是否存在處于未提交狀態的事務。如果發現的確有大量事務的state處于active,這時可以確定數據庫有大量的事務未提交;

      ④:內存使用:

      提供內存使用信息統計,有利于了解和調整服務器的內存消耗。從MySQL5.7.2開始,performance schema新增內存有關的統計信息,分別從賬戶、訪問主機、線程、用戶及事件的角度統計了內存的使用過程;

      ⑤:存儲程序:

      存儲過程、存儲方法、事件調度器和表觸發器的檢測器。在MySQL5.7中的setup_objects表中,新增了event、function、procedure、trigger的檢測器。performance schema用于檢測該表中匹配object_schema和object_name的對象;

      2、sys schema介紹:

      在MySQL5.7中新增的sys schema。是由一系列對象(視圖、存儲過程、存儲方法、表和觸發器)組成的schema,它本身不采集和存儲什么信息,而是將performance_schema 和 information_schema中的數據以更容易理解的方式總結出來歸納為“視圖”。

      ---sys schema可用于典型的調優和診斷用例,這些對象包括如下三個:

      ①:將性能模式數據匯總到更容易理解的視圖;

      ②:諸如性能模式配置和生成診斷報告等操作的存儲過程

      ③:用于查詢性能模式配置并提供格式化服務的存儲函數

      ---sys schema在查詢中的功能,可以查看數據庫服務資源的使用情況?哪些主機對數據庫服務器的訪問量最大?實例上的內存使用情況?

      3、sys schema里面的表的分類:

      ①:主機相關信息:

      以host_summary開頭的視圖,主要匯總了IO延遲的信息,從主機、文件事件類型、語句類型等角度展示文件IO的信息;

      ②:innodb相關信息:

      以innodb開頭的視圖,匯總了innodb buffer page信息和事務等待innodb鎖信息;

      ③:IO使用情況:

      以IO開頭的視圖,總結了IO使用者的信息,包括等待IO的情況、IO使用量情況,從各個角度分組展示;

      ④:內存使用情況:

      以memory開頭的視圖,從主機、線程、用戶、事件角度展示內存使用情況;

      ⑤:連接與會話信息:

      其中,processlist 和 session相關的視圖,總結了會話相關的信息;

      ⑥:表相關信息:

      以schema_table開頭的視圖,從全表掃描、innodb緩沖池等方面展示了表統計信息;

      ⑦:索引信息:

      其中包含index的視圖,統計了索引使用的情況,以及重復索引和未使用的索引情況;

      ⑧:語句相關信息:

      以statement開頭的視圖,統計的規范化后的語句使用情況,包括錯誤數、警告數、執行全表掃描的、使用臨時表、執行排序等信息;
      ⑨:用戶相關信息:

      以user開頭的視圖,統計了用戶使用的文件IO,執行的語句統計信息等;

      ⑨:等待事件相關信息

      以wait開頭的視圖,從主機和事件角度展示等待類事件的延遲情況;

      4、sys schema使用列子:

      ---查看表的訪問量:(可以監控每張表訪問量的情況,或者監控某個庫的訪問量的變化)
      select table_schema,table_name,sum(io_read_requests+io_write_requests) from schema_table_statistics;
      select table_schema,table_name,io_read_requests+io_write_requests as io_total from schema_table_statistics;
      ---冗余索引和未使用索引的檢查:(schema_redundant_indexes和schema_unused_indexes查看索引的情況)
      select * from sys.schema_redundant_indexes\G
      select * from sys.schema_unused_indexes;
      (如果有冗余索引和長期未使用的索引,應該及時清理,)
      ---查看表自增ID使用情況:
      select * from schema_auto_increment_columns\G 
      (可以使用schema_auto_increment_columns視圖,就能很簡單的查到每個表的自增量使用情況,甚至可以精確到某個表的自增量情況)
      ---監控全表掃描的sql語句:
      select * from sys.statements_with_full_table_scans where db='test2'\G
      (使用statements_with_full_table_scans視圖可以查看哪些表查詢使用了全表掃描,其中exec_count是執行的次數,等信息)
      ---查看實例消耗的磁盤I/O情況:()
      select file,avg_read+avg_write as avg_io from io_global_by_file_by_bytes order by avg_io desc limit 10;
      (查看io_global_by_file_by_bytes視圖可以檢查磁盤I/O消耗過大的原因,定位問題)

      相關推薦:

      常用的幾個mysql監控腳本命令

      mysql實現自動監控同步的腳本

      mysql innodb的監控(系統層,數據庫層)的實例代碼詳解

      以上就是實例詳解MySQL5.7中 performance和sys schema中的監控參數的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清