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

MySQL慢查詢問(wèn)題排查方式

 更新時(shí)間:2025年02月28日 09:02:28   作者:山林竹筍  
文章介紹了MySQL慢查詢排查的步驟,包括查看當(dāng)前正在運(yùn)行的事務(wù)狀態(tài)、查看線程狀態(tài)、殺死線程、輔助判斷命令、開(kāi)啟慢查詢?nèi)罩竞烷_(kāi)啟通用查詢?nèi)罩?/div>

MySQL慢查詢排查

第一步:查看當(dāng)前正在運(yùn)行的事務(wù)狀態(tài)

select trx_state,trx_started,trx_mysql_thread_id,trx_query from information_schema.innodb_trx;

其中:

  • Trx_state:事務(wù)狀態(tài)
  • Trx_started:事務(wù)啟動(dòng)時(shí)間
  • Trx_mysql_thread_id:事務(wù)的線程id
  • Trx_query:事務(wù)當(dāng)前執(zhí)行的查詢sql

當(dāng)Trx_state的值為:“LOCK_WAIT”時(shí),說(shuō)明發(fā)生了鎖等待。等待時(shí)間過(guò)長(zhǎng)可能導(dǎo)致程序返回失敗。

示例:

第二步:查看線程狀態(tài)

show processlist;
  • 返回結(jié)果包括:id,host,db,Command,Time,State等。
  • 找到id等于第一步中的trx_mysql_thread_id對(duì)應(yīng)的記錄,如果Command是“Sleep”。
  • 說(shuō)明這個(gè)線程的事務(wù)一直沒(méi)有提交或者卡住了。我們需要手動(dòng)kill掉。

第三步:殺死線程

Kill id
  • 在mysql客戶端執(zhí)行上面的命令殺死線程。
  • 一般使用以上的命令足以判斷是否是因?yàn)槭聞?wù)等待問(wèn)題發(fā)生錯(cuò)誤。

第四步:輔助判斷命令

此外,以下命令也可以輔助判斷:

1. 查詢行鎖狀態(tài):

show status like 'InnoDB_row_lock%';

返回中,Innodb_row_lock_current_waits顯示正在等待行鎖的數(shù)量。

2. 查詢當(dāng)前使用的鎖

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

Mysql8中對(duì)應(yīng)為:

select * from performance_schema.data_locks;

3. 查詢鎖等待的事務(wù)

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

Mysql8中對(duì)應(yīng)為:

select * from performance_schema.data_lock_waits;

4. 查詢當(dāng)前被鎖的表

show OPEN TABLES where In_use > 0;

5. 查詢最近一次的死鎖記錄日志

show engine innodb status

可以導(dǎo)出到本地查看:

mysql -u root -p --execute="show engine innodb status \G" > /root/test.log

根據(jù)以上命令,找到結(jié)果中存在等待異常的trx_id即事務(wù)id,再回到第一步,從當(dāng)前事務(wù)列表中找到對(duì)應(yīng)事務(wù),然后殺死對(duì)應(yīng)線程。

第五步:開(kāi)啟慢查詢?nèi)罩?/h3>

通過(guò)慢查詢?nèi)罩?,記錄?zhí)行時(shí)間超時(shí)的sql語(yǔ)句。超時(shí)默認(rèn)是10秒。

1. 查看慢查詢?nèi)罩臼欠耖_(kāi)啟,并開(kāi)啟日志

show variables like '%query%';

返回中,slow_query_log為“OFF”,表示關(guān)閉。開(kāi)啟日志:

set global slow_query_log='ON';

第六步:開(kāi)啟通用查詢?nèi)罩?/h3>

1. 查看通用查詢?nèi)罩臼欠耖_(kāi)啟

show variables like '%general%';

返回中,general_log為“OFF”,表示關(guān)閉。開(kāi)啟日志:

set global general_log='ON'

注意:

通用日志會(huì)記錄所有的sql執(zhí)行語(yǔ)句,會(huì)導(dǎo)致日志文件過(guò)大,以及執(zhí)行速度變慢,應(yīng)在查詢后及時(shí)關(guān)閉。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL通透詳解架構(gòu)設(shè)計(jì)

    MySQL通透詳解架構(gòu)設(shè)計(jì)

    這篇文章主要介紹了MySQL架構(gòu)設(shè)計(jì)相關(guān)基礎(chǔ)與原則,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2022-02-02
  • MySQL千萬(wàn)不要這樣寫update語(yǔ)句

    MySQL千萬(wàn)不要這樣寫update語(yǔ)句

    MySQL中update語(yǔ)句用于更新表中的現(xiàn)有數(shù)據(jù),亦可用UPDATE語(yǔ)句來(lái)更改表中單個(gè)行,一組行或所有行的列值,這篇文章主要給大家介紹了關(guān)于MySQL千萬(wàn)不要這樣寫update語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 簡(jiǎn)單了解mysql方言dialect

    簡(jiǎn)單了解mysql方言dialect

    這篇文章主要介紹了簡(jiǎn)單了解數(shù)據(jù)庫(kù)方言dialect,數(shù)據(jù)庫(kù)方言也是如此,MySQL 是一種方言,Oracle 也是一種方言,MSSQL 也是一種方言,他們之間在遵循 SQL 規(guī)范的前提下,都有各自的擴(kuò)展特性,需要的朋友可以參考下
    2019-07-07
  • MySQL中UPDATE與DELETE語(yǔ)句的使用教程

    MySQL中UPDATE與DELETE語(yǔ)句的使用教程

    這篇文章主要介紹了MySQL中UPDATE與DELETE語(yǔ)句的使用教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-12-12
  • MySQL如何添加數(shù)據(jù)insert命令

    MySQL如何添加數(shù)據(jù)insert命令

    這篇文章主要介紹了MySQL如何添加數(shù)據(jù)insert命令問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Mysql的數(shù)據(jù)庫(kù)遷移到另一個(gè)機(jī)器上的方法詳解

    Mysql的數(shù)據(jù)庫(kù)遷移到另一個(gè)機(jī)器上的方法詳解

    今天小編就為大家分享一篇關(guān)于Mysql的數(shù)據(jù)庫(kù)遷移到另一個(gè)機(jī)器上的方法詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • 詳解MySQL中的緩沖池(buffer pool)

    詳解MySQL中的緩沖池(buffer pool)

    這篇文章主要介紹了MySQL中的緩沖池(buffer pool)的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-01-01
  • mysql查詢字符串替換語(yǔ)句小結(jié)(數(shù)據(jù)庫(kù)字符串替換)

    mysql查詢字符串替換語(yǔ)句小結(jié)(數(shù)據(jù)庫(kù)字符串替換)

    有時(shí)候我們需要對(duì)mysql的字符串進(jìn)行替換,我們就可以通過(guò)sql語(yǔ)句直接實(shí)現(xiàn)了,不過(guò)對(duì)于大數(shù)據(jù)量的字段不建議使用此方法
    2012-07-07
  • mysql如何簡(jiǎn)單定位慢查詢并分析SQL執(zhí)行效率

    mysql如何簡(jiǎn)單定位慢查詢并分析SQL執(zhí)行效率

    這篇文章主要介紹了mysql如何簡(jiǎn)單定位慢查詢并分析SQL執(zhí)行效率,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • MySQL學(xué)習(xí)第六天 學(xué)習(xí)MySQL基本數(shù)據(jù)類型

    MySQL學(xué)習(xí)第六天 學(xué)習(xí)MySQL基本數(shù)據(jù)類型

    MySQL學(xué)習(xí)第六天和大家一起學(xué)習(xí)MySQL基本數(shù)據(jù)類型,基本類型包括數(shù)值類型、日期和時(shí)間類型和字符串類型等,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評(píng)論