慢查詢分析日最初是用來捕獲比較「慢」的查詢,在mysql5.1 + 版本中,慢查詢的功能被加強,可以通過設定long_query_time為0來捕獲所有的查詢,而且查詢的響應時間已經可以做到微妙級別。
---在mysql的當前版本中,慢查詢日誌是開銷最低,精確度最高的測量查詢時間的工具。如果還在擔心開啟慢查詢會帶來額外的i/o開銷,那大可以放心,我們在i/o密集型場景做過測試,慢查詢帶來的開銷可以忽略不計(實際上cpu密集型場景的影響還稍大一些)
更需要擔心的是日誌可能會消耗掉很大的磁碟空間,因此,不要長時間開啟滿日誌查詢 [高效能mysql]
下面我們採用慢查詢日誌查詢語句的執行效率
一、執行show variables like '%quer%';查詢是否已經開啟了慢查詢
可以發現 binlog_rows_query_log_events 的狀態為off,表明還沒有開啟日誌功能
開啟慢日誌功能有兩種方式,
(1.1) 在啟動時直接開啟:
在default-ini中新增如下資訊:
[mysqld]
log-slow-queries=" d:\softpackage\mysql\data\cuiyw-slow.log" --查詢日誌的輸出目錄
long_query_time = 4 --查詢日誌的閾值
log-queries-not-using-indexes --將沒有索引的日誌輸出
(1.2)使用命令臨時開啟:
use databasename;
set global slow_query_log = 1;
set global long_query_time = 1;
set global log_output = 'file';
set global general_log = 1;
set long_query_time = 1;
我採用的是第二種方式,執行完後,執行show variables like '%quer%',確定是否啟動成功:
發現引數值變為了on,表明啟動成功。我們檢視一下data目錄下的檔案
二、slow_query_log
log_slow_queries實際上已經不再使用了,目前mysql5.6版本的引數是slow_query_log,引數含義如下:
(2.1)、命令列引數:
--log-slow-queries
指定日誌檔案存放位置,可以為空,系統會給乙個預設的檔案host_name-slow.log
(2.2)、系統變數
log_slow_queries
指定日誌檔案存放位置,可以為空,系統會給乙個預設的檔案host_name-slow.log
slow_query_log
slow quere log的開關,當值為1的時候說明開啟慢查詢。
slow_query_log_file
指定日誌檔案存放位置,可以為空,系統會給乙個預設的檔案host_name-slow.log
long_query_time
記錄超過的時間,預設為10s
log_queries_not_using_indexes
log下來沒有使用索引的query,可以根據情況決定是否開啟
三、重新啟動mysql(重新記錄一下mysql啟動和關閉的方法)
(3.1)、啟動方式
1、使用 service 啟動:service mysqld start
2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld start
3、使用 safe_mysqld 啟動:safe_mysqld&
(3.2)、停止
1、使用 service 啟動:service mysqld stop
2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
(3.3)、重啟
1、使用 service 啟動:service mysqld restart
2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld restart
mysql 查詢慢 分析 MYSQL的慢查詢分析
有一段日子了,曾經設定了一次記錄在mysql中查詢慢於1秒鐘的sql語句。剛才突然回想設定的方法,有幾個引數的名稱死活回憶不起來了,於是重新整理一下,自己做個筆記。對於排查問題找出效能瓶頸來說,最容易發現並解決的問題就是mysql的慢查詢以及沒有得用索引的查詢。ok,開始找出mysql中執行起來不 ...
mysql 慢查詢分析
轉自花開的地方 mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動 的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 1 log slow queries lo...
mysql 慢查詢分析
mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動 的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 1 log slow queries log querie...