新增慢查詢日誌:
第一種、修改my.cnf新增(薦):
log-slow-queries=/var/log/slowquery.log
long_query_time=1
重啟mysql
第二種、命令下新增:
set global long_query_time=1;
注:long_query_time的值:
5.2.1之前版本最小為1s,如果想支援ms需要打補丁;
mysql5.21+的版本最小值為0,可以設定0.5(500ms)。
檢視慢查詢時間值:
mysql> show variables like "%long%";
慢查詢分析mysqldumpslow
我們可以通過開啟log檔案檢視得知哪些sql執行效率低下
[root@localhost mysql]# more slow-query.log
# time: 081026 19:46:34
# user@host: root[root] @ localhost
# query_time: 11 lock_time: 0 rows_sent: 1 rows_examined: 6552961
select count(*) from t_user;
從日誌中,可以發現查詢時間超過5 秒的sql,而小於5秒的沒有出現在此日誌中。
如果慢查詢日誌中記錄內容很多,可以使用mysqldumpslow工具(mysql客戶端安裝自帶)來對慢查詢日誌進行分類彙總。mysqldumpslow對日誌檔案進行了分類彙總,顯示彙總後摘要結果。
進入log的存放目錄,執行
[root@mysql_data]#mysqldumpslow slow-query.log
reading mysql slow query log from slow-query.log
count: 2 time=11.00s (22s) lock=0.00s (0s) rows=1.0 (2), root[root]@mysql
select count(n) from t_user;
mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-query.log
這會輸出記錄次數最多的10條sql語句,其中:
-s, 是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒敘;
-t, 是top n的意思,即為返回前面多少條的資料;
-g, 後邊可以寫乙個正則匹配模式,大小寫不敏感的;
例如:/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回記錄集最多的10個查詢。
/path/mysqldumpslow -s t -t 10 -g 「left join」 /database/mysql/slow-log
得到按照時間排序的前10條裡面含有左連線的查詢語句。
使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對mysql查詢語句的監控、分析、優化是mysql優化非常重要的一步。開啟慢查詢日誌後,由於日誌記錄操作,在一定程度上會占用cpu資源影響mysql的效能,但是可以階段性開啟來定位效能瓶頸。
附:新增錯誤日誌
log-error=/var/log/mysql/logerror.log
不重啟服務,直接配置變數
mysql>set global log_slow_queries=on; 注這個和下面乙個有乙個為on,另乙個自動為 on
mysql>set global slow_query_log=on;
mysql> set global slow_query_log_file='/tmp/man.log';
mysql> set global long_query_time=3; #注這個和上面的不同,需要重新登陸才可以使用show看到生效。
注:slow_launch_time跟慢查詢日誌沒有任何關係, 它代表的是thread create的乙個閾值
修改配置檔案注意:
long_query_time=2
log-long-format
log-slow-queries=/data/mysqldata/slow-log.log #不能指定成slow_query_log=/data/mysqldata/slow-log.log 指定後重啟服務正常啟動,但是慢日誌不會開啟,名字為預設的主機名.log
mysql開啟慢查詢日誌 MySQL慢日誌體系建設
慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...
mysql慢日誌時間 MySQL慢查詢日誌優化
一 慢查詢日誌概念 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mys...
mysql慢日誌解析 mysql 慢日誌分析
啟用 slow log 有兩種啟用方式 1,在my.cnf 裡 通過 log slow queries file name 2,在mysqld程序啟動時,指定 log slow queries file name 選項 比較的五款常用工具 mysqldumpslow,mysqlsla,myprofi...