欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解MySQL查看執(zhí)行慢的SQL語句(慢查詢)

 更新時間:2024年03月04日 09:19:37   作者:重慶熊貓  
查看執(zhí)行慢的SQL語句,需要先開啟慢查詢?nèi)罩?,MySQL的慢查詢?nèi)罩?,記錄在MySQL中響應(yīng)時間超過閥值的語句(具體指運行時間超過long_query_time值的SQL,本文給大家介紹MySQL查看執(zhí)行慢的SQL語句,感興趣的朋友跟隨小編一起看看吧

慢查詢?nèi)罩?/h2>

查看執(zhí)行慢的SQL語句,需要先開啟慢查詢?nèi)罩尽?br />MySQL 的慢查詢?nèi)罩?,記錄?MySQL 中響應(yīng)時間超過閥值的語句(具體指運行時間超過 long_query_time 值的SQL。long_query_time 的默認值為10,意思是運行10秒以上(不含10秒)的語句)。

目的:發(fā)現(xiàn)執(zhí)行時間特別長的SQL查詢,進行優(yōu)化。

默認情況下,MySQL數(shù)據(jù)庫沒有開啟慢查詢?nèi)罩?,需要我們手動來設(shè)置這個參數(shù)。

慢日志常用配置項

slow_query_log       是否啟用慢查詢?nèi)罩?,默認為0,可設(shè)置為0、1,1表示開啟。
slow_query_log_file  指定慢查詢?nèi)罩疚恢眉懊Q,默認值為host_name-slow.log,可指定絕對路徑。
long_query_time      慢查詢執(zhí)行時間閾值,超過此時間會記錄,默認為10,單位為s。
log_output           慢查詢?nèi)罩据敵瞿繕?,默認為file,即輸出到文件。
log_timestamps       主要是控制 error log、slow log、genera log 日志文件中的顯示時區(qū),默認使用UTC時區(qū),建議改為 SYSTEM 系統(tǒng)時區(qū)。
log_queries_not_using_indexes    是否記錄所有未使用索引的查詢語句,默認為off。
min_examined_row_limit           對于查詢掃描行數(shù)小于此參數(shù)的SQL,將不會記錄到慢查詢?nèi)罩局?,默認為0。
log_slow_admin_statements        慢速管理語句是否寫入慢日志中,管理語句包含 alter table、create index 等,默認為 off 即不寫入

一般情況下,我們只需開啟慢日志記錄,配置下閾值時間,其余參數(shù)可按默認配置。對于閾值時間,可靈活調(diào)整,比如說可以設(shè)置為 1s 或 3s 。

查看是否開啟慢查詢?nèi)罩?/h3>
show variables like '%slow_query_log%';

開啟慢查詢(臨時,當前會話有效)

set global slow_query_log='ON';

查看慢查詢?nèi)罩敬娣盼募恢?/h3>
show variables like '%slow_query_log_file%';

查看long_query_time閾值

show variables like '%long_query_time%';

設(shè)置long_query_time閾值(臨時,當前會話有效)

set global long_query_time=3

直接修改配置文件(全局,需要重啟服務(wù),慎重)

#編輯配置文件
vim /etc/my.cnf

# 修改配置項(如果沒有就加上)
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/my-slow.log
long_query_time = 1
log_timestamps = SYSTEM
log_output = FILE

# 重啟mysqld服務(wù)
systemctl restart mysqld

# 查看mysqld服務(wù)
systemctl status mysqld

測試

select sleep(5);
ls /var/lib/mysql/xxx-slow.log

慢查詢?nèi)罩疚募治?/h2>

單條記錄結(jié)構(gòu)

單條記錄結(jié)構(gòu):

# Time: 2024-03-01T17:12:40.156488+08:00
# User@Host: panda[panda] @  [192.168.72.1]  Id:     8
# Query_time: 5.000688  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
SET timestamp=1709284355;
select sleep(5);

字段說明:
慢查詢?nèi)罩疽?作為起始符。
Time:查詢的時間。
User@Host:表示用戶 和 慢查詢查詢的ip地址。
如上所述,表示 root用戶 localhost地址。
Query_time: 表示SQL查詢持續(xù)時間, 單位 (秒)。
Lock_time: 表示獲取鎖的時間, 單位(秒)。
Rows_sent: 表示發(fā)送給客戶端的行數(shù)。
Rows_examined: 表示:服務(wù)器層檢查的行數(shù)。
set timestamp :表示 慢SQL 記錄時的時間戳。
最后 select sleep(5) 則表示慢SQL語句。

慢查詢?nèi)罩痉治?mysqldumpslow

MySQL自帶了一個慢查詢分析工具mysqldumpslow。
試了下不太好使??梢栽囋嚕?br />Navicat Monitor、signoz、hertzbeat 這些性能監(jiān)測工具。

mysqldumpslow -s c -t 10 /var/run/mysqld/mysqld-slow.log # 取出使用最多的10條慢查詢
mysqldumpslow -s t -t 3 /var/run/mysqld/mysqld-slow.log # 取出查詢時間最慢的3條慢查詢
mysqldumpslow -s t -t 10 -g “l(fā)eft join” /database/mysql/slow-log #得到按照時間排序的前10條里面含有左連接的查詢語句
mysqldumpslow -s r -t 10 -g 'left join' /var/run/mysqld/mysqldslow.log # 按照掃描行數(shù)最多的

慢查詢?nèi)罩痉治?Navicat Monitor

官網(wǎng)下載就行了。跟著指引配置即可。
很舒服,還可以自動提供一些運維建議。

查詢分析

其他細節(jié)

記錄管理語句

在 MySQL 中,慢查詢?nèi)罩局心J不記錄管理語句,如:

alter table, analyze table,check table

不過可通過以下屬性進行設(shè)置:

mysql> set global log_slow_admin_statements = "ON";

記錄未走索引的SQL語句

在 MySQL 中,還可以設(shè)置將未走索引的SQL語句記錄在慢日志查詢文件中(默認為關(guān)閉狀態(tài))。通過下述屬性即可進行設(shè)置:

mysql> set global log_queries_not_using_indexes = "ON";
Query OK, 0 rows affected (0.00 sec)

SQL 復制 全屏

慢查詢?nèi)罩据敵鑫恢?/h3>

在MySQL中,日志輸出格式有支持:FILE(默認),TABLE 兩種,可進行組合使用。如下所示:

set global log_output = "FILE,TABLE";

這樣設(shè)置會同時在 FILE, mysql庫中的slow_log表中同時寫入。

select * from mysql.slow_log;

參考資料

https://www.navicat.com.cn/company/aboutus/blog/456-使用-mysql-慢速查詢?nèi)罩?html

到此這篇關(guān)于MySQL查看執(zhí)行慢的SQL語句(慢查詢)的文章就介紹到這了,更多相關(guān)MySQL查看SQL語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中IO問題的深入分析與優(yōu)化

    MySQL中IO問題的深入分析與優(yōu)化

    據(jù)庫作為存儲系統(tǒng),所有業(yè)務(wù)訪問數(shù)據(jù)的操作都會轉(zhuǎn)化為底層數(shù)據(jù)庫系統(tǒng)的IO行為,下面這篇文章主要給大家介紹了關(guān)于MySQL中IO問題的深入分析與優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    這篇文章主要介紹了Win10下免安裝版MySQL5.7的安裝和配置教程詳解,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 基于Linux的mysql主從配置全過程記錄

    基于Linux的mysql主從配置全過程記錄

    這篇文章主要給大家介紹了基于Linux的mysql主從配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • mysql5.7.19 winx64安裝配置方法圖文教程(win10)

    mysql5.7.19 winx64安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細介紹了mysql5.7.19 winx64安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    很多人在使用Mysql時沒有考慮到優(yōu)化問題,如果遇到上千萬數(shù)據(jù)量的表,查詢上千萬數(shù)據(jù)量的時候會發(fā)生什么問題,本文就來介紹一下如何快速查詢一千萬條數(shù)據(jù),感興趣的可以了解一下
    2021-12-12
  • select count()和select count(1)的區(qū)別和執(zhí)行方式講解

    select count()和select count(1)的區(qū)別和執(zhí)行方式講解

    今天小編就為大家分享一篇關(guān)于select count()和select count(1)的區(qū)別和執(zhí)行方式講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL的Grant命令詳解

    MySQL的Grant命令詳解

    mysql中可以通過Grant命令為數(shù)據(jù)庫賦予用戶權(quán)限,這里簡單介紹下Grant的使用方法,需要的朋友可以參考下
    2013-10-10
  • Mysql報錯too many connections的原因及解決方案

    Mysql報錯too many connections的原因及解決方案

    這篇文章主要給大家介紹了關(guān)于Mysql報錯too many connections原因及解決方案,文中通過實例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • C#如何在海量數(shù)據(jù)下的高效讀取寫入MySQL

    C#如何在海量數(shù)據(jù)下的高效讀取寫入MySQL

    這篇文章主要介紹了C#如何在海量數(shù)據(jù)下的高效讀取寫入MySQL的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 詳解MySQL數(shù)據(jù)庫insert和update語句

    詳解MySQL數(shù)據(jù)庫insert和update語句

    用于操作數(shù)據(jù)庫的SQL一般分為兩種,一種是查詢語句,也就是我們所說的SELECT語句,另外一種就是更新語句,也叫做數(shù)據(jù)操作語句。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫insert和update語句,需要的朋友一起學習吧
    2016-04-04

最新評論