慢查詢分析日最初是用來捕獲比較「慢」的查詢,在mysql5.1 + 版本中,慢查詢的功能被增強,能夠經過設置long_query_time爲0來捕獲全部的查詢,並且查詢的響應時間已經能夠作到微妙級別。mysql
---在MySQL的當前版本中,慢查詢日誌是開銷最低,精確度最高的測量查詢時間的工具。若是還在擔憂開啓慢查詢會帶來額外的I/O開銷,那大能夠放心,咱們在I/O密集型場景作過測試,慢查詢帶來的開銷能夠忽略不計(實際上CPU密集型場景的影響還稍大一些)sql
更須要擔憂的是日誌可能會消耗掉很大的磁盤空間,所以,不要長時間開啓滿日誌查詢 [高性能MySQL]工具
下面咱們採用慢查詢日誌查詢語句的執行效率性能
1、執行 show variables like '%quer%'; 查詢是否已經開啓了慢查詢測試
能夠發現 binlog_rows_query_log_events 的狀態爲OFF,代表尚未打開日誌功能ui
打開慢日誌功能有兩種方式,命令行
(1.1) 在啓動時直接打開:3d
在default-ini中添加以下信息:rest
[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目錄下的文件
2、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,能夠根據狀況決定是否開啓
3、從新啓動MySQL(從新記錄一下MySQL啓動和關閉的方法)
(3.1)、啓動方式一、使用 service 啓動:service mysqld start二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld start三、使用 safe_mysqld 啓動:safe_mysqld&(3.2)、中止一、使用 service 啓動:service mysqld stop二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld stop三、mysqladmin shutdown(3.3)、重啓一、使用 service 啓動:service mysqld restart二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld restart