Mysql使用Profiling分析語句消耗
Profiling 分析具體的sql語句消耗
MySQL5.0.37版本以上支援了Profiling – 官方手冊。此工具可用來查詢 SQL 會執行多少時間,System lock和Table lock 花多少時間等等,對定位一條語句的 I/O消耗和CPU消耗 非常重要。
從啟動profile之後的所有查詢包括錯誤的語句都會記錄。
關閉會話或者set profiling=0 就關閉了。
# 開啟 profiling mysql> set profiling=1; mysql> select * from user limit 1; mysql> select count(*) from user group by sexal; # 檢視這些語句的profile mysql> show profiles; +--------------+----------------+--------------------------------------------------------------+ | Query_ID | Duration | Query | +--------------+----------------+--------------------------------------------------------------+ | 1 | 0.00013200 | SELECT DATABASE() | | 2 | 0.00044100 | select * from user limit 2 | | 3 | 1.95544100 | select nick,count(*) from user group by online| +--------------+----------------+--------------------------------------------------------------+
檢視具體一條(Query_ID=3 這一條)語句的profiles,包括CPU和柱塞I/O的情況
mysql> show profile cpu,block io for query 3; +----------------------+----------+----------+------------+--------------+---------------+ | Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out | +----------------------+----------+----------+------------+--------------+---------------+ | starting | 0.000057 | 0.000000 | 0.000000 | 0 | 0 | | Opening tables | 0.000014 | 0.000000 | 0.000000 | 0 | 0 | | System lock | 0.000006 | 0.000000 | 0.000000 | 0 | 0 | | Table lock | 0.000009 | 0.000000 | 0.000000 | 0 | 0 | | init | 0.000021 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000006 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000011 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000010 | 0.000000 | 0.000000 | 0 | 0 | | Creating tmp table | 0.000039 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | | Copying to tmp table | 1.900619 | 1.030785 | 0.197970 | 127 | 127 | | Sorting result | 0.000015 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000015 | 0.000000 | 0.000000 | 0 | 0 | | end | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | | removing tmp table | 0.000008 | 0.000000 | 0.000000 | 0 | 0 | | end | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | | query end | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | | freeing items | 0.000025 | 0.000000 | 0.000000 | 0 | 0 | | logging slow query | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | | cleaning up | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | +----------------------+----------+----------+------------+--------------+---------------+
上面就獲得了一條語句的CPU和Block IO消耗,對定位瓶頸很方便,其餘的一些資訊,可以用語句:“Show profile *** for query 3”來獲取
http://www.cnblogs.com/wrmfw/archive/2011/09/05/2166927.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-731799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL使用profile分析語句效能消耗MySql
- MySQL如何利用profiling分析SQL查詢語句MySql
- mysql語句分析工具explain使用說明MySqlAI
- MySQL語句執行分析(一)MySql
- MySQL語句執行分析(二)MySql
- Oracle高資源消耗SQL語句定位OracleSQL
- MySQL中explain語句的使用MySqlAI
- 使用sql語句分析雙色球SQL
- 超全面 MySQL 語句加鎖分析(上篇)MySql
- 超全面 MySQL 語句加鎖分析(中篇)MySql
- 超全面 MySQL 語句加鎖分析(下篇)MySql
- mysql語句MySql
- MySQL在預設事務下各SQL語句使用的鎖分析MySql
- Mysql優化_內建profiling效能分析工具MySql優化
- MySQL replace語句MySql
- MySQL的語句MySql
- mySql常用語句MySql
- MySQL語句大全MySql
- MYSQL語句集MySql
- MySQL DML語句MySql
- MySQL Dll語句MySql
- MySQL INSERT IGNORE語句的使用MySql
- MySQL 的CASE WHEN 語句使用說明MySql
- 找出消耗CPU最高的程式對應的SQL語句SQL
- oracle 使用explain plan分析查詢語句OracleAI
- oracle使用profiler分析語句執行效率Oracle
- MySQL 中 一條 order by index limit 語句的分析MySqlIndexMIT
- android DDMS method profiling 工具使用分析Android
- 使用 locust 對 mysql 語句進行壓測MySql
- Mysql日期常用語句MySql
- Mysql小白語句整理MySql
- 【MySQL】常用拼接語句MySql
- 初識mysql語句MySql
- MySQL基礎語句MySql
- mysql的常用語句MySql
- MySQL迴圈語句MySql
- MySQL SHOW 語句大全MySql
- MySql 常用Sql語句MySql