MySQL的慢查詢分析

慢查詢分析日最初是用來捕獲比較「慢」的查詢,在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

相關文章
相關標籤/搜索