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

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

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

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

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

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

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

慢日志常用配置項(xiàng)

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

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

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

開啟慢查詢(臨時(shí),當(dāng)前會(huì)話有效)

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閾值(臨時(shí),當(dāng)前會(huì)話有效)

set global long_query_time=3

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

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

# 修改配置項(xiàng)(如果沒有就加上)
[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

測(cè)試

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:查詢的時(shí)間。
User@Host:表示用戶 和 慢查詢查詢的ip地址。
如上所述,表示 root用戶 localhost地址。
Query_time: 表示SQL查詢持續(xù)時(shí)間, 單位 (秒)。
Lock_time: 表示獲取鎖的時(shí)間, 單位(秒)。
Rows_sent: 表示發(fā)送給客戶端的行數(shù)。
Rows_examined: 表示:服務(wù)器層檢查的行數(shù)。
set timestamp :表示 慢SQL 記錄時(shí)的時(shí)間戳。
最后 select sleep(5) 則表示慢SQL語句。

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

MySQL自帶了一個(gè)慢查詢分析工具mysqldumpslow。
試了下不太好使。可以試試:
Navicat Monitor、signoz、hertzbeat 這些性能監(jiān)測(cè)工具。

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

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

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

查詢分析

其他細(xì)節(jié)

記錄管理語句

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

alter table, analyze table,check table

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

mysql> set global log_slow_admin_statements = "ON";

記錄未走索引的SQL語句

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

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

SQL 復(fù)制 全屏

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

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

set global log_output = "FILE,TABLE";

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

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    很多人在使用Mysql時(shí)沒有考慮到優(yōu)化問題,如果遇到上千萬數(shù)據(jù)量的表,查詢上千萬數(shù)據(jù)量的時(shí)候會(huì)發(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)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL的Grant命令詳解

    MySQL的Grant命令詳解

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

    Mysql報(bào)錯(cuò)too many connections的原因及解決方案

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

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

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

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

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

最新評(píng)論