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語句執行分析(一)MySql
- MySQL語句執行分析(二)MySql
- android DDMS method profiling 工具使用分析Android
- MySQL中explain語句的使用MySqlAI
- 超全面 MySQL 語句加鎖分析(上篇)MySql
- 超全面 MySQL 語句加鎖分析(中篇)MySql
- 超全面 MySQL 語句加鎖分析(下篇)MySql
- mysql語句MySql
- MySQL profiling剖析SQLMySql
- MySQL在預設事務下各SQL語句使用的鎖分析MySql
- MySQL replace語句MySql
- mySql常用語句MySql
- MySQL的語句MySql
- MySQL 中 一條 order by index limit 語句的分析MySqlIndexMIT
- 使用 locust 對 mysql 語句進行壓測MySql
- 【MySQL】MySQL語句最佳化MySql
- mysql查詢語句MySql
- Mysql日期常用語句MySql
- MySQL基礎語句MySql
- Mysql小白語句整理MySql
- 【MySQL】常用拼接語句MySql
- mysql的常用語句MySql
- MySQL迴圈語句MySql
- 初識mysql語句MySql
- MySQL explain 和 profiling 詳解MySqlAI
- switch語句逆向分析
- mysql使用phpmyadmin批次替換資料sql語句MySqlPHP
- MySQL中UPDATE語句裡SET後使用AND的執行過程和結果分析MySql
- Mysql之查詢語句MySql
- Mysql中的DQL語句MySql
- MySQL 三種新增語句MySql
- MySQL 四種新增語句MySql
- mysql handler語句之一MySql
- mysql查詢語句集MySql
- MySQL——優化ORDER BY語句MySql優化
- MYSQL SQL語句優化MySql優化
- MySQL(十四)分析查詢語句Explain 七千字總結MySqlAI
- Sqlserver定位哪些物件和哪些會話哪些sql語句消耗了tempdbSQLServer物件會話
- 如何快速定位當前資料庫消耗 CPU 最高的 sql 語句?資料庫SQL