MySQL使用event等待事件進行資料庫效能診斷
首先將performance_schema這個資料庫下的需要進行跟蹤的指標開啟:
update setup_consumers set enabled='yes' where name like '%wait%';
select * from setup_consumers where name like '%wait%';
建立一個檢視方便後續查詢:
create view sys.test_waits as select sum(timer_wait) as timer_wait, sum(number_of_bytes) as numer_of_bytes, event_name, operation from performance_schema.events_waits_current where event_name != 'idle'
group by event_name, operation;
查詢:
select sys.format_time(timer_wait), sys.format_bytes(numer_of_bytes), event_name, operation from sys.test_waits order by timer_wait;
當我執行壓測時效果如下:
mysql> select sys.format_time(timer_wait), sys.format_bytes(numer_of_bytes), event_name, operation from sys.test_waits order by timer_wait;
+-----------------------------+----------------------------------+--------------------------------------+---------------+
| sys.format_time(timer_wait) | sys.format_bytes(numer_of_bytes) | event_name | operation |
+-----------------------------+----------------------------------+--------------------------------------+---------------+
| 1.57 us | NULL | wait/lock/table/sql/handler | read external |
| 2.02 us | 8.00 KiB | wait/io/file/sql/binlog | read |
| 2.55 us | 512 bytes | wait/io/file/innodb/innodb_log_file | write |
| 9.19 us | 16.00 KiB | wait/io/file/innodb/innodb_data_file | write |
| 33.78 us | 1 bytes | wait/io/table/sql/handler | delete |
| 104.83 us | 128.00 KiB | wait/io/file/innodb/innodb_data_file | read |
| 2.35 ms | NULL | wait/io/file/innodb/innodb_log_file | sync |
| 6.45 ms | NULL | wait/io/file/innodb/innodb_data_file | sync |
| 13.69 ms | 1 bytes | wait/io/table/sql/handler | fetch |
+-----------------------------+----------------------------------+--------------------------------------+---------------+
9 rows in set (0.01 sec)
mysql> select sys.format_time(timer_wait), sys.format_bytes(numer_of_bytes), event_name, operation from sys.test_waits order by timer_wait;
+-----------------------------+----------------------------------+--------------------------------------+-----------+
| sys.format_time(timer_wait) | sys.format_bytes(numer_of_bytes) | event_name | operation |
+-----------------------------+----------------------------------+--------------------------------------+-----------+
| 2.12 us | 8.00 KiB | wait/io/file/sql/binlog | read |
| 44.06 us | 16.00 KiB | wait/io/file/innodb/innodb_data_file | write |
| 53.48 us | 8.00 KiB | wait/io/file/innodb/innodb_log_file | write |
| 140.21 us | 128.00 KiB | wait/io/file/innodb/innodb_data_file | read |
| 2.19 ms | NULL | wait/io/file/innodb/innodb_log_file | sync |
| 3.6 ms | NULL | wait/io/file/innodb/innodb_data_file | sync |
+-----------------------------+----------------------------------+--------------------------------------+-----------+
摘自: 《千金良方:MySQL效能優化金字塔法則》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2849947/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於等待事件的效能診斷(轉)事件
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- Part II 診斷和優化資料庫效能優化資料庫
- 利用errorstack事件進行錯誤跟蹤和診斷Error事件
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- mysql 事件 eventMySql事件
- 使用python進行Oracle資料庫效能趨勢分析PythonOracle資料庫
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 查詢資料庫等待事件top10資料庫事件
- 資料庫異常智慧分析與診斷資料庫
- ODX 診斷資料庫轉換工具 — DDC資料庫
- MySQL資料庫故障分析-鎖等待(一)MySql資料庫
- Oracle診斷事件列表(轉)Oracle事件
- 使用Mysql工具進行資料清洗MySql
- 大語言模型與資料庫故障診斷模型資料庫
- 免費網站seo診斷:從哪些維度進行診斷呢?網站
- MySQL入門--EVENT(事件)MySql事件
- 用10046進行診斷一例
- 【恩墨學院】基於裸資料的異地資料庫效能診斷與最佳化資料庫
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- 使用 SOS 對 Linux 中執行的 .NET Core 進行問題診斷Linux
- 金倉資料庫KingbaseES等待事件之LWLock lock_manager資料庫事件
- Laravel使用event事件Laravel事件
- 使用Redis和Java進行資料庫快取 - DZone資料庫RedisJava資料庫快取
- MYTFA(MYSQL 診斷資訊收集工具)介紹MySql
- MySQL資料庫效能最佳化MySql資料庫
- Oracle 19c中的等待事件分類 Event WaitsOracle事件AI
- 使用Spring Data JPA進行資料庫操作Spring資料庫
- 資料庫簡化運維,智慧診斷助手幫你搞定!資料庫運維
- mysql 5.7後使用sys資料庫下的表查詢資料庫效能狀況MySql資料庫
- 自動同步整個 MySQL/Oracle 資料庫以進行資料分析MySqlOracle資料庫
- MySQL資料庫使用(二)MySql資料庫
- mysql 資料庫效能分析工具簡介MySql資料庫
- java判斷mysql中資料庫是否存在JavaMySql資料庫
- 使用Java和Flyway進行資料庫版本控制Java資料庫
- 使用Redis和Java進行資料庫快取RedisJava資料庫快取
- 如何使用Java Streams進行資料庫查詢?Java資料庫
- 如何使用 dotTrace 來診斷 netcore 應用的效能問題NetCore