MySQL5.7 慢查詢SQL語句集合

文章目錄

    • 1. 按平均執行時間排序的慢查詢
    • 2. 按總執行時長排序的慢查詢
    • 3. MySQL 5.7 慢查詢配置檢查
    • 4. 掃描行數分析(找出全表掃描)
    • 5. 高頻執行的慢查詢
    • 6. 當前正在執行的查詢
    • 7. 慢查詢統計匯總
    • 8. 表結構和索引分析
      • 8.1 表索引詳情查詢
      • 8.2 表大小統計

1. 按平均執行時間排序的慢查詢

SELECT SCHEMA_NAME as '數據庫名',LEFT(DIGEST_TEXT, 150) as 'SQL語句摘要',COUNT_STAR as '執行次數',ROUND(AVG_TIMER_WAIT/1000000000000, 4) as '平均執行時間(秒)',ROUND(SUM_TIMER_WAIT/1000000000000, 4) as '總執行時間(秒)',ROUND(MAX_TIMER_WAIT/1000000000000, 4) as '最大執行時間(秒)',ROUND(MIN_TIMER_WAIT/1000000000000, 4) as '最小執行時間(秒)',CASE WHEN COUNT_STAR > 0 THEN ROUND(SUM_ROWS_EXAMINED/COUNT_STAR, 0)ELSE 0 END as '平均掃描行數',CASE WHEN COUNT_STAR > 0 THEN ROUND(SUM_ROWS_SENT/COUNT_STAR, 0)ELSE 0 END as '平均返回行數',FIRST_SEEN as '首次出現',LAST_SEEN as '最后出現'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND DIGEST_TEXT IS NOT NULLAND COUNT_STAR > 0AND AVG_TIMER_WAIT > 1000000000  -- 平均執行時間超過1毫秒
ORDER BY AVG_TIMER_WAIT DESC
LIMIT 20;

2. 按總執行時長排序的慢查詢

SELECT SCHEMA_NAME as '數據庫名',LEFT(DIGEST_TEXT, 120) as 'SQL語句摘要',COUNT_STAR as '執行次數',ROUND(AVG_TIMER_WAIT/1000000000000, 4) as '平均執行時間(秒)',ROUND(SUM_TIMER_WAIT/1000000000000, 4) as '總執行時間(秒)',ROUND(MAX_TIMER_WAIT/1000000000000, 4) as '最大執行時間(秒)',CASE WHEN COUNT_STAR > 0 THEN ROUND(SUM_ROWS_EXAMINED/COUNT_STAR, 0)ELSE 0 END as '平均掃描行數',-- MySQL 5.7 不支持窗口函數,使用子查詢計算比例ROUND((SUM_TIMER_WAIT / (SELECT SUM(SUM_TIMER_WAIT) FROM performance_schema.events_statements_summary_by_digest WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys'))) * 100, 2) as '占總時間比例(%)'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND DIGEST_TEXT IS NOT NULLAND COUNT_STAR > 0AND SUM_TIMER_WAIT > 5000000000000  -- 總執行時間超過5秒
ORDER BY SUM_TIMER_WAIT DESC
LIMIT 20;

3. MySQL 5.7 慢查詢配置檢查

-- 查看慢查詢相關配置
SHOW VARIABLES LIKE '%slow%';-- 查看慢查詢時間閾值
SHOW VARIABLES LIKE 'long_query_time';-- 查看performance_schema配置狀態
SHOW VARIABLES LIKE 'performance_schema';-- 檢查performance_schema相關表是否啟用
SELECT TABLE_NAME, ENABLED 
FROM performance_schema.setup_instruments 
WHERE NAME LIKE '%statement%' AND NAME LIKE '%sql%';-- 檢查consumers是否啟用
SELECT NAME, ENABLED 
FROM performance_schema.setup_consumers 
WHERE NAME LIKE '%statements%';

4. 掃描行數分析(找出全表掃描)

SELECT SCHEMA_NAME as '數據庫名',LEFT(DIGEST_TEXT, 100) as 'SQL語句摘要',COUNT_STAR as '執行次數',ROUND(AVG_TIMER_WAIT/1000000000000, 4) as '平均執行時間(秒)',SUM_ROWS_EXAMINED as '總掃描行數',CASE WHEN COUNT_STAR > 0 THEN ROUND(SUM_ROWS_EXAMINED/COUNT_STAR, 0)ELSE 0 END as '平均掃描行數',SUM_ROWS_SENT as '總返回行數',CASE WHEN SUM_ROWS_EXAMINED > 0 THEN ROUND(SUM_ROWS_SENT/SUM_ROWS_EXAMINED*100, 2)ELSE 0 END as '掃描效率(%)',CASE WHEN SUM_ROWS_SENT > 0 THEN ROUND(SUM_ROWS_EXAMINED/SUM_ROWS_SENT, 0)ELSE SUM_ROWS_EXAMINED END as '掃描/返回比例'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND DIGEST_TEXT IS NOT NULLAND COUNT_STAR > 0AND SUM_ROWS_EXAMINED > 100000  -- 掃描行數超過10萬
ORDER BY SUM_ROWS_EXAMINED DESC
LIMIT 15;

5. 高頻執行的慢查詢

SELECT SCHEMA_NAME as '數據庫名',LEFT(DIGEST_TEXT, 120) as 'SQL語句摘要',COUNT_STAR as '執行次數',ROUND(AVG_TIMER_WAIT/1000000000000, 4) as '平均執行時間(秒)',ROUND(SUM_TIMER_WAIT/1000000000000, 4) as '總執行時間(秒)',ROUND(AVG_TIMER_WAIT/1000000, 2) as '平均執行時間(毫秒)',CASE WHEN COUNT_STAR > 0 THEN ROUND(SUM_ROWS_EXAMINED/COUNT_STAR, 0)ELSE 0 END as '平均掃描行數',DATE(FIRST_SEEN) as '首次出現日期',DATE(LAST_SEEN) as '最后出現日期',TIMESTAMPDIFF(DAY, FIRST_SEEN, LAST_SEEN) as '持續天數'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND DIGEST_TEXT IS NOT NULLAND COUNT_STAR > 1000  -- 執行次數超過1000次AND AVG_TIMER_WAIT > 100000000  -- 平均執行時間超過100毫秒
ORDER BY COUNT_STAR DESC, AVG_TIMER_WAIT DESC
LIMIT 15;

6. 當前正在執行的查詢

SELECT p.ID as '進程ID',p.USER as '用戶',p.HOST as '主機',p.DB as '數據庫',p.COMMAND as '命令類型',p.TIME as '執行時間(秒)',p.STATE as '狀態',LEFT(IFNULL(p.INFO, ''), 200) as 'SQL語句',CASE WHEN p.TIME > 60 THEN '極慢'WHEN p.TIME > 10 THEN '慢'WHEN p.TIME > 1 THEN '一般'ELSE '正常'END as '性能等級'
FROM information_schema.PROCESSLIST p
WHERE p.COMMAND != 'Sleep'AND p.TIME > 1  -- 執行時間超過1秒AND p.ID != CONNECTION_ID()  -- 排除當前連接
ORDER BY p.TIME DESC;

7. 慢查詢統計匯總

SELECT '指標類型' as metric_type,'數值' as metric_value,'單位' as unit
FROM (SELECT 1 as dummy) t
WHERE 1=0  -- 創建表頭UNION ALLSELECT '總查詢類型數',CAST(COUNT(*) as CHAR),'個'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')UNION ALLSELECT '慢查詢類型數(>1秒)',CAST(COUNT(*) as CHAR),'個'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND AVG_TIMER_WAIT > 1000000000000UNION ALLSELECT '極慢查詢類型數(>10秒)',CAST(COUNT(*) as CHAR),'個'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND AVG_TIMER_WAIT > 10000000000000UNION ALLSELECT '總執行次數',CAST(SUM(COUNT_STAR) as CHAR),'次'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')UNION ALLSELECT '總執行時間',CAST(ROUND(SUM(SUM_TIMER_WAIT)/1000000000000/3600, 2) as CHAR),'小時'
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME IS NOT NULL AND SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys');

8. 表結構和索引分析

8.1 表索引詳情查詢

SELECT s.TABLE_SCHEMA as '數據庫',s.TABLE_NAME as '表名',s.INDEX_NAME as '索引名',s.COLUMN_NAME as '列名',s.SEQ_IN_INDEX as '索引位置',s.CARDINALITY as '基數',s.NULLABLE as '可為空',CASE s.INDEX_TYPEWHEN 'BTREE' THEN 'B樹索引'WHEN 'HASH' THEN '哈希索引'WHEN 'FULLTEXT' THEN '全文索引'ELSE s.INDEX_TYPEEND as '索引類型',CASE WHEN s.INDEX_NAME = 'PRIMARY' THEN '主鍵'WHEN s.NON_UNIQUE = 0 THEN '唯一索引'ELSE '普通索引'END as '索引分類'
FROM information_schema.STATISTICS s
WHERE s.TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')
ORDER BY s.TABLE_SCHEMA, s.TABLE_NAME, s.INDEX_NAME, s.SEQ_IN_INDEX;

8.2 表大小統計

SELECT t.TABLE_SCHEMA as '數據庫',t.TABLE_NAME as '表名',t.ENGINE as '存儲引擎',IFNULL(t.TABLE_ROWS, 0) as '估算行數',ROUND(IFNULL(t.DATA_LENGTH, 0)/1024/1024, 2) as '數據大小(MB)',ROUND(IFNULL(t.INDEX_LENGTH, 0)/1024/1024, 2) as '索引大小(MB)',ROUND((IFNULL(t.DATA_LENGTH, 0) + IFNULL(t.INDEX_LENGTH, 0))/1024/1024, 2) as '總大小(MB)',t.AUTO_INCREMENT as '自增值',t.CREATE_TIME as '創建時間',t.UPDATE_TIME as '更新時間'
FROM information_schema.TABLES t
WHERE t.TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')AND t.TABLE_TYPE = 'BASE TABLE'
ORDER BY (IFNULL(t.DATA_LENGTH, 0) + IFNULL(t.INDEX_LENGTH, 0)) DESC
LIMIT 20;

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

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

相關文章

MySQL學習(1)——基礎庫操作

歡迎來到博主的專欄:MySQL學習 博主ID:代碼小豪 文章目錄 數據庫原理基礎庫操作增刪數據庫數據庫編碼與校驗規則驗證不同的校驗規則對于庫中數據的影響 備份與恢復數據庫 數據庫原理 mysql版本:mysql8.0 操作系統:ubuntu22.4 為了減少由于環境配置以及權限限制帶來的使用問題&…

C++法則12:右值引用的核心目的:支持移動語義(Move Semantics)

C法則12:右值引用的核心目的:支持移動語義(Move Semantics) 右值引用(Rvalue Reference)是C11引入的最重要特性之一,其主要設計目的就是支持移動語義(Move Semantics)。 …

【LLM學習筆記4】使用LangChain開發應用程序(上)

目錄 前言一、模型、提示和解析器(model、prompt、parsers)二、儲存三、模型鏈四、基于文檔的問答1.使用向量存儲查詢2. 結合表征模型和向量存儲使用檢索問答鏈回答問題 前言 在前面兩部分,我們分別學習了大語言模型的基礎使用準則&#xff…

Negative Contrastive Estimation Negative Sampling

1. 基本概念與問題背景 1.1 大規模分類問題 在自然語言處理中,給定上下文 c c c預測單詞 w w w的條件概率為: P ( w ∣ c ) exp ? ( s θ ( w , c ) ) ∑ w ′ ∈ V exp ? ( s θ ( w ′ , c ) ) P(w|c) \frac{\exp(s_\theta(w,c))}{\sum_{w\in V…

Flink SQL Connector Kafka 核心參數全解析與實戰指南

Flink SQL Connector Kafka 是連接Flink SQL與Kafka的核心組件,通過將Kafka主題抽象為表結構,允許用戶使用標準SQL語句完成數據讀寫操作。本文基于Apache Flink官方文檔(2.0版本),系統梳理從表定義、參數配置到實戰調優…

vscode內嵌瀏覽器實時預覽vue項目

安裝插件 web Preview 啟動vue項目 打開預覽 ctrl shift p 之后輸入并選擇 Open Web Preview 即可看到預覽窗口,但此時明明我的頁面是有內容的,但是窗口卻空白的。 因為默認訪問端口是3000,我們將其修改為vue項目默認的5173端口即可。 點…

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體 前言一、物理層的基本概念1. 什么是物理層2. 物理層的核心使命3. 物理層的四大特性 二、數據通信的基礎知識1. 數據通信系統的基本模型1.1 …

Linux系統性能優化

目錄 Linux系統性能優化 一、性能優化概述 二、性能監控工具 1. 基礎工具 2. 高級工具 三、子系統優化策略 1. CPU優化 2. 內存優化 3. 磁盤I/O優化 4. 網絡優化 四、資源限制優化 1. ulimit 2. cgroups(控制組) 五、安全與注意事項 六、…

【streamlit streamlit中 顯示 mermaid 流程圖有兩種方式】

streamlit中顯示mermaid 流程圖有兩種方式 mermaind示例 code """ flowchart LRmarkdown["This **is** _Markdown_"]newLines["Line1Line 2Line 3"]markdown --> newLinesmarkdown["This **is** _Markdown_"]newLines[&quo…

Rust調用 DeepSeek API

Rust 實現類似 DeepSeek 的搜索工具 使用 Rust 構建一個高效、高性能的搜索工具需要結合異步 I/O、索引結構和查詢優化。以下是一個簡化實現的框架: 核心組件設計 索引結構 use std::collections::{HashMap, HashSet}; use tantivy::schema::{Schema, TEXT, STORED}; use …

Unity3D仿星露谷物語開發69之動作聲音

1、目標 Player動作時產生的聲音,比如砍倒樹木、砸石頭。 2、修復NPC快速行進的bug(與本節無關) 修改NPCMovement.cs腳本的MoveToGridPositionRoutine方法。 確保npcCalculatedSpeed的速度不少于最慢速度。 原代碼: 修改后的…

【Node.js 的底層實現機制】從事件驅動到異步 I/O

簡介 Node.js 作為 JavaScript 后端運行環境,其核心優勢在于高并發處理能力和非阻塞 I/O 模型。 特點: 高并發處理:單線程事件循環高效處理大量并發連接I/O 密集型任務:非阻塞 I/O 模型避免線程切換開銷,不適合 CPU…

nginx服務器配置時遇到的一些問題

京東云 CentOS 8.2 64位 Nginx配置文件修改后需要重啟或重載服務的原因以及不重啟的后果: ??工作進程不主動重讀配置??: Nginx采用master-worker多進程架構。master進程讀取配置文件并管理worker進程,worker進程處理實際請求。修改配置…

【論文閱讀 | CVPR 2024 |Fusion-Mamba :用于跨模態目標檢測】

論文閱讀 | CVPR 2024 |Fusion-Mamba :用于跨模態目標檢測 1.摘要&&引言2.方法2.1 預備知識2.2 Fusion-Mamba2.2.1 架構特征提取與多模態融合(FMB模塊)FMB的應用與輸出2.2.2 關鍵組件3.2.2.1 SSCS 模塊:淺層跨模態特征交互…

Nginx-Ingress-Controller自定義端口實現TCP/UDP轉發

背景1 使用deployment部署一個http服務,配合使用ingresstls的解析在ingress終止。 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:annotations:name: test.comnamespace: rcs-netswitch-prod spec:defaultBackend:service:name: rcs-netswitch-prodpo…

基于Vue.js的圖書管理系統前端界面設計

一、系統前端界面設計要求與效果 (一)系統功能結構圖 設計一個基于Vue.js的圖書管理系統前端界面。要充分體現Vue的核心特性和應用場景,同時結合信息管理專業的知識。要求系統分為儀表盤、圖書管理、借閱管理和用戶管理四個主要模塊&#x…

Perplexity AI:對話式搜索引擎的革新者與未來認知操作系統

在信息爆炸的數字時代,傳統搜索引擎提供的海量鏈接列表已無法滿足用戶對高效、精準知識獲取的需求。Perplexity AI作為一款融合人工智能與實時網絡檢索的對話式搜索引擎,正通過技術創新重新定義人們獲取信息的方式。這家成立于2022年的硅谷初創企業&…

第七講 信號

1. 信號鋪墊 信號: Linux 系統提供的, 簡單輕量的, 用于向指定進程發送特定事件, 讓接受信號進程做識別和對應處理實現進程控制的一種異步通信機制. 1~31 普通信號 34 ~ 64 實時信號 信號概覽 下面是Linux系統中所有標準信號的名稱及其對應的數字: SIGHUP (1…

2025年滲透測試面試題總結-2025年HW(護網面試) 02(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 2025年HW(護網面試) 02 1. 有趣的挖洞經歷 2. 高頻漏洞及修復方案 3. PHP/Java反序列化漏洞 4. 服務器入…

Odoo 18進階開發:打造專業級list,kanban視圖Dashboard

🎯 項目概述 在現代企業級應用中,數據可視化已成為提升用戶體驗的關鍵要素。Odoo 18 作為領先的企業資源規劃系統,為開發者提供了強大的視圖定制能力。本教程將帶您深入了解如何在list(列表)視圖和Kanban(…