Mysql慢日志、慢SQL

慢查詢日志

查看執行慢的SQL語句,需要先開啟慢查詢日志。
MySQL 的慢查詢日志,記錄在 MySQL 中響應時間超過閥值的語句(具體指運行時間超過?long_query_time?值的SQL。long_query_time 的默認值為10,意思是運行10秒以上(不含10秒)的語句)。

目的:發現執行時間特別長的SQL查詢,進行優化。

默認情況下,MySQL數據庫沒有開啟慢查詢日志,需要我們手動來設置這個參數。

慢日志常用配置項

1

2

3

4

5

6

7

8

slow_query_log?????? 是否啟用慢查詢日志,默認為0,可設置為0、1,1表示開啟。

slow_query_log_file? 指定慢查詢日志位置及名稱,默認值為host_name-slow.log,可指定絕對路徑。

long_query_time????? 慢查詢執行時間閾值,超過此時間會記錄,默認為10,單位為s。

log_output?????????? 慢查詢日志輸出目標,默認為file,即輸出到文件。

log_timestamps?????? 主要是控制 error log、slow log、genera log 日志文件中的顯示時區,默認使用UTC時區,建議改為 SYSTEM 系統時區。

log_queries_not_using_indexes??? 是否記錄所有未使用索引的查詢語句,默認為off。

min_examined_row_limit?????????? 對于查詢掃描行數小于此參數的SQL,將不會記錄到慢查詢日志中,默認為0。

log_slow_admin_statements??????? 慢速管理語句是否寫入慢日志中,管理語句包含 alter table、create index 等,默認為 off 即不寫入

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

查看是否開啟慢查詢日志

1

show variables like '%slow_query_log%';

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

1

set global slow_query_log='ON';

查看慢查詢日志存放文件位置

1

show variables like '%slow_query_log_file%';

查看long_query_time閾值

1

show variables like '%long_query_time%';

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

1

set global long_query_time=3

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#編輯配置文件

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服務

systemctl restart mysqld

# 查看mysqld服務

systemctl status mysqld

測試

1

2

select sleep(5);

ls /var/lib/mysql/xxx-slow.log

慢查詢日志文件分析

單條記錄結構

單條記錄結構:

1

2

3

4

5

# 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);

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

慢查詢日志分析-mysqldumpslow

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

1

2

3

4

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 “left join” /database/mysql/slow-log #得到按照時間排序的前10條里面含有左連接的查詢語句

mysqldumpslow -s r -t 10 -g 'left join' /var/run/mysqld/mysqldslow.log # 按照掃描行數最多的

慢查詢日志分析-Navicat Monitor

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

查詢分析

其他細節

記錄管理語句

在 MySQL 中,慢查詢日志中默認不記錄管理語句,如:

1

alter table, analyze tablecheck table

不過可通過以下屬性進行設置:

1

mysql> set global log_slow_admin_statements = "ON";

記錄未走索引的SQL語句

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

1

2

mysql> set global log_queries_not_using_indexes = "ON";

Query OK, 0 rows affected (0.00 sec)

SQL 復制 全屏

慢查詢日志輸出位置

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

1

set global log_output = "FILE,TABLE";

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

1

select * from mysql.slow_log;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41766.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實現基于Spring Boot的Web安全防護

實現基于Spring Boot的Web安全防護 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在當今互聯網應用的開發中,保護用戶數據和系統安全至關重要。S…

阿里云RDS云數據庫庫表恢復操作

最近數據庫中數據被人誤刪了,記錄一下恢復操作方便以后發生時進行恢復. 1.打開控制臺,進入云數據庫實例. 2.進入實例后 ,點擊右側的備份恢復,然后看一下備份時間點,中間這邊都是阿里云自動備份的備份集,基本都是7天一備…

詳解「一本通 5.1 練習 1」括號配對(區間DP經典題)

一.題目 二.思路 題目的大意是說:給你一個只由[ ] ( )構成的字符串,請問需要增加多少個字符才能使其變為一個合法的括號序列。 因為添加若干字符使其達到匹配的目的等價于將不匹配的字符去除使得字符串達到匹配的目的 所以這題只需計算出已匹配完成的括號數,再…

中英雙語介紹倫敦金融城(City of London)

中文版 倫敦金融城,通常稱為“金融城”或“城”(The City),是英國倫敦市中心的一個著名金融區,具有悠久的歷史和全球性的影響力。以下是關于倫敦金融城的詳細介紹,包括其地理位置、人口、主要公司、歷史背…

機器學習原理之 -- 隨機森林分類:由來及原理詳解

隨機森林分類器是機器學習中一種強大且靈活的集成學習方法。它通過構建多棵決策樹并結合其結果來提高分類精度和穩定性。本文將詳細介紹隨機森林分類器的由來、基本原理、構建過程及其優缺點。 二、隨機森林的由來 隨機森林(Random Forest)由Leo Breima…

【優化論】約束優化算法

約束優化算法是一類專門處理目標函數在存在約束條件下求解最優解的方法。為了更好地理解約束優化算法,我們需要了解一些核心概念和基本方法。 約束優化的核心概念 可行域(Feasible Region): 比喻:想象你在一個園藝場…

基于機器學習的永磁同步電機矢量控制策略-高分資源-下載可用!

基于機器學習的永磁同步電機矢量控制策略 優勢 訓練了RL-Agent,能夠提高電機在非線性負載下的性能。 部分程序 仿真結果 轉矩估計及dq軸電流。 代碼有償,50,需要的可以聯系。

數學建模算法目標規劃

在人們的生產實踐中,經常會遇到如何利用現有資源來安排生產,以取得最大經濟 效益的問題。此類問題構成了運籌學的一個重要分支—數學規劃,而線性規劃(Linear Programming 簡記 LP)則是數學規劃的一個重要分支。特別是在計算機能處理成千上萬個…

底層軟件 | STM32啟動分析之main函數是怎樣跑起來的

應屆生面試,基本上嵌入式一般都是基于32的項目,記得我當年面大疆的就是有這個題目。 1、STM32啟動規則 STM32根據boot0和boot1的電平決定啟動位置,boot00時從主Flash啟動,即0x08000000地址啟動。 按照spec,M3核的中斷…

構建工程化:多種不同的工程體系如何編寫MakeFile

源碼分析 核心MakeFile 這個 Makefile 是一個復雜的構建腳本,用于管理和構建一個大型項目。它包括多個目標、條件判斷和遞歸調用 make 命令來處理多個子項目和子目錄。讓我們逐部分進行詳細解析。 偽目標和變量定義 .PHONY: all clean install build test init.…

依賴注入的優點、解決的問題以及其底層原理和邏輯

依賴注入(Dependency Injection, DI)是一種設計模式,用于實現控制反轉(Inversion of Control, IoC)。它通過將對象的依賴關系從類內部轉移到外部配置或注入,從而提高代碼的可維護性、可測試性和可擴展性。以…

使用Spring Boot和Apache Camel集成第三方服務

使用Spring Boot和Apache Camel集成第三方服務 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討如何利用Spring Boot和Apache Camel來集成第三方服…

pycharm如何使用jupyter

目錄 配置jupyter新建jupyter文件別人寫的方法(在pycharm種安裝,在網頁中使用) pycharm專業版 配置jupyter 在pycharm終端啟動一個conda虛擬環境,輸入 conda install jupyter會有很多前置包需要安裝: 新建jupyter…

一文理清LK光流

舉出幾種光流方法,說明LK光流的建模方式? 光流方法是用于估計圖像序列中像素點運動的技術,廣泛應用于計算機視覺和視頻處理領域。以下是幾種常見的光流方法: Lucas-Kanade (LK) 方法: 一種基于局部窗口的光流估計方法…

代理IP在未來將面臨哪些挑戰?

今天我們來聊聊代理IP在未來可能會面臨的挑戰。雖然代理IP技術目前應用廣泛,但隨著科技的發展和網絡環境的變化,代理IP也將面臨一些新的挑戰。讓我們一起來看看這些挑戰是什么吧! 1. 更嚴格的網絡封鎖和檢測 現代社會各行各業都在飛速發展&…

可變參數 Collections 不可變集合 Stream流

目錄 1.可變參數: 2.Collections: 3.不可變集合: 4.Stream流: 1、什么是流 2、如何生成流 1.單列集合獲取Stream流 2.雙列集合獲取Stream流 3.數組獲取Stream流: 4.一堆零散數據: Stream接口中的靜態方法 3.Stream流的…

解決分布式環境下session共享問題

在分布式環境下,session會存在兩個問題 第一個問題:不同域名下,瀏覽器存儲的jsessionid是沒有存儲的。比如登錄時認證服務auth.gulimall.com存儲了session,但是搜索服務search.gulimall.com是沒有這個session的; 第二個問題&…

基于SpringBoot的校園臺球廳人員與設備管理系統

本系統是要設計一個校園臺球廳人員與設備管理系統,這個系統能夠滿足校園臺球廳人員與設備的管理及用戶的校園臺球廳人員與設備管理功能。系統的主要功能包括首頁、個人中心、用戶管理、會員賬號管理、會員充值管理、球桌信息管理、會員預約管理、普通預約管理、留言…

【SSRF】

SSRF (Server-Side Request Forgery 服務端請求偽造) 文章目錄 0x01 是什么?0x02 怎么判斷是否存在SSRF漏洞?0x03 防御0x04 繞過手段 0x01 是什么? 是什么? ??答:攻擊者構造請求,…

w3wp.exe 中發生未處理的 Microsoft ,NETFramework 異常。

🏆本文收錄于「Bug調優」專欄,主要記錄項目實戰過程中的Bug之前因后果及提供真實有效的解決方案,希望能夠助你一臂之力,幫你早日登頂實現財富自由🚀;同時,歡迎大家關注&&收藏&&…