mysql慢查詢相當

2021-07-24 03:29:58 字數 2958 閱讀 8153

show variables like 

'%slow%';

這上命令能看到mysql慢查詢日誌在哪

慢查詢日誌,顧名思義,就是查詢慢的日誌,是指mysql記錄所有執行超過long_query_time引數設定的時間閾值的sql語句的日誌。該日誌能為sql語句的優化帶來很好的幫助。預設情況下,慢查詢日誌是關閉的,要使用慢查詢日誌功能,首先要開啟慢查詢日誌功能。

在mysql的配置檔案中的mysqld下方新增以下引數

[plain]view plain

copy

log-slow-queries = d:/mysql/log/mysqld-slow-query.log  

long-query-time = 5  

#log-long-format  

#log-slow-admin-statements  

log-queries-not-using-indexes  

log-slow-queries

指定日誌檔案存放位置,該目錄檔案一定要有寫的許可權。可以不用設定,系統會給乙個預設的檔案host_name-slow.log

long_query_time

sql執行時間閾值,預設為10秒。

注意以下三點:

1、設定long_query_time這個閾值後,mysql資料庫會記錄執行時間超過該值的所有sql語句,但對於執行時間正好等於long_query_time的情況,並不會被記錄下來。也就是說,在mysql原始碼裡是判斷大於long_query_time,而非大於等於。

2、從mysql 5.1開始,long_query_time開始以微秒記錄sql語句執行時間,之前僅用秒為單位記錄。這樣可以更精確地記錄sql的執行時間,供dba分析。

3、建議該時間不應太小或太大,最好在5-10秒之間。當然可以根據自己情況決定。

log-queries-not-using-indexes

如果執行的sql語句沒有使用索引,則mysql資料庫同樣會將這條sql語句記錄到慢查詢日誌檔案中。

log-long-format

與這個引數對應的是另乙個引數:log-short-format

簡單的說log-long-format選項是用來設定日誌的格式,它是以擴充套件方式記錄有關事件。擴充套件方式可記錄誰發出查詢和什麼時候發出查詢的資訊。可使我們更好地掌握客戶端的操作情況。

準確的說,它是記錄啟用的更新日誌、二進位制更新日誌、和慢查詢日誌的大量資訊。例如,所有查詢的使用者名稱和時間戳將記錄下來。不贊成選用該選項,因為它現在代表 預設記錄行為。

log-short-format

記錄啟用的更新日誌、二進位制更新日誌、和慢查詢日誌的少量資訊。例如,使用者名稱和時間戳不記錄下來。

log-slow-admin-statements

將慢管理語句例如optimize table、analyze table和alter table記入慢查詢日誌。

我們可以通過慢查詢日誌來找出有問題的sql語句,對其進行優化。隨著mysql資料庫伺服器執行時間的增加,可能會有越來越多的sql查詢被記錄到了慢查詢日誌檔案中,這時要分析該文章就顯得不是很容易了。mysql提供的mysqldumpslow命令,可以很好地解決這個問題。

使用方法如下:

命令列下,進入 mysql/bin 目錄,輸入mysqldumpslow ?help--help可以看到這個工具的引數

mysqldumpslow -s c -t 20 host-slow.log

mysqldumpslow -s r -t 20 host-slow.log 

上述命令可以看出訪問次數最多的 20 個 sql 語句和返回記錄集最多的 20 個 sql 

mysqldumpslow -t 10 -s t -g "left join" host-slow.log

這個是按照時間返回前 10 條裡面含有左連線的 sql 語句。

mysqldumpslow -s c -t 10 /database/mysql/slow-log

這會輸出記錄次數最多的10條sql語句,其中:

-s order,是表示按照何種方式排序,order值有:c、t、l、r 分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒序;

-t num,即為返回前面多少條的資料;

-g pattern,pattern可以寫乙個正則匹配模式,大小寫不敏感的;

使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對mysql查詢語句的監控、分析、優化是mysql優化的第一步,也是非常重要的一步。

相關命令

檢視慢查詢的記錄數

[plain]view plain

copy

mysql> show global status like '%slow%';  

檢視long_query_time值

[plain]view plain

copy

mysql> show variables like '%long%';  

檢視是否開啟慢查詢

[plain]view plain

copy

mysql> show variables like 'log_slow_queries';  

檢視log_queries_not_using_indexes狀態

[plain]view plain

copy

mysql> show variables like 'log_queries_not_using_indexes';  

Mysql匯入資料相當慢

匯入資料的方法 匯出 備份 mysqldump u 使用者名稱 p databasename exportfilename 匯入 還原 方法一 mysql u 使用者名稱 p databasename 方法二 進入mysql資料庫控制台 use 資料庫名,之後 source importfilena...

mysql 慢查詢 MySQL慢查詢

一 簡介 開啟慢查詢日誌,可以讓mysql記錄下查詢超過指定時間的語句,通過定位分析效能的瓶頸,才能更好的優化資料庫系統的效能。二 引數說明 slow query log 慢查詢開啟狀態 slow query log file 慢查詢日誌存放的位置 這個目錄需要mysql的執行帳號的可寫許可權,一般...

mysql配置慢查詢 MYSQL慢查詢配置

mysql慢查詢配置 1.慢查詢有什麼用?它能記錄下所有執行超過long query time時間的sql語句,幫你找到執行慢的sql,方便我們對這些sql進行優化.2.如何開啟慢查詢?首先我們先檢視mysql伺服器的慢查詢狀態是否開啟.執行如下命令 我們可以看到當前log slow queries...