程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql profiling的一些命令

mysql profiling的一些命令

編輯:關於MYSQL數據庫
  適用於MySQL 5.1
取自high performance MySQL.
general log和slow log之區別(具體名字並非如此):
show variables like '%query%';
+------------------------------+-------------------------------+
| Variable_name                | Value                         |
+------------------------------+-------------------------------+
| ft_query_expansion_limit     | 20                            |
| have_query_cache             | YES                           |
| long_query_time              | 60.000000                     |
| query_alloc_block_size       | 8192                          |
| query_cache_limit            | 1048576                       |
| query_cache_min_res_unit     | 4096                          |
| query_cache_size             | 16777216                      |
| query_cache_type             | ON                            |
| query_cache_wlock_invalidate | OFF                           |
| query_prealloc_size          | 8192                          |
| slow_query_log               | ON                            |
| slow_query_log_file          | /var/log/mysql/MySQL-slow.log |
+------------------------------+-------------------------------+MySQL> show variables like '%general%';
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/MySQLd.log |
+------------------+----------------------------+
2 rows in set (0.00 sec)
這兩個log一般默認是不打開的,可以在my.cnf修改相關設置。它們主要用來記錄查詢的執行信息。
general.log:什麼查詢都記錄,其中有些查詢甚至是沒通過語法分析的,帶有錯誤;
slow.log:只記錄查詢執行時間大於long_query_time的一類查詢。分析log文件並不能得到很多信息,往往使用explain命令查看MySQL對某個查詢產生的查詢計劃。
eg. explain select count(*) from t;MySQL> explain select count(*) from tG
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: NULL
         type: NULL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: NULL
        Extra: Select tables optimized away
1 row in set (0.00 sec)另外show status、show session status、show profiles、show profile,show processlist也可以派上用場。
flush status,show status經常配對用來對某個階段的工作審查。
比如
flush status
select count(*) from t;
show status
可以查看上面query的影響。
另外如果數據庫默認沒有啟用profiling,在某個session中啟用它,可以查看到很多具體信息,如查詢使用cpu情況。
set profiling=1;
select count(*) from t;
show profiles;
或show profile cpu for query 1;操作系統級別的審查命令:
Operating system profiling;
查看虛擬存儲,頁表,IO等。
vmstat,mpstat,iOStat,strace等。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved