MySQL的慢查詢分析

2022-07-03 13:30:12 字數 2301 閱讀 2329

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