MySQL定位CPU利用率過高的SQL方法

前言

當mysql CPU告警利用率過高的時候,我們應該怎么定位是哪些SQL導致的呢,本文將介紹一下定位的方法。

本文所使用的方法,前提是你可以登錄到Mysql所在的服務器,執行命令查看進程,當然讓數據庫管理員登錄執行也可以。但如果無法或無權限去服務器上執行命令,本方法將不適合定位問題。

一.獲取Mysql的服務器進程號

登陸mysql所在的Linux服務器,執行命令:top,在COMMAND列找到mysqld,并且%CPU使用率高的,比如數值超過100的,獲取PID號。

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
32232 root      20   0 1443252 356688  11748 S 107.0  4.4   2:03.82 mysqld     

上述例子中,32232mysql進程ID,接下來再用它查詢出占用CPU多的線程。

二.查詢進程中的線程

使用命令:top -H -p <mysqld 進程 id>,查詢線程號:

本例中使用命令top -H -p 32232

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                               
32272 root      20   0 1443252 356688  11748 R 99.7  4.4   2:25.74 mysqld 

其中PID 32272為線程id號。

三.根據線程ID去mysql查詢出對應的SQL

select a.user,a.host,a.db,b.thread_os_id,b.thread_id,a.id processlist_id,a.command,a.time,a.state,a.info from information_schema.processlist a,performance_schema.threads b where a.id = b.processlist_id and b.thread_os_id=32272;

查詢結果:

| user     | host      | db   | thread_os_id | thread_id | processlist_id | command | time | state        | info                                        |
+----------+-----------+------+--------------+-----------+----------------+---------+------+--------------+---------------------------------------------+
| msandbox | localhost | test |        32272 |        32 |              7 | Query   |    2 | Sending data | select * from t_abc order by rand() limit 1 |
+----------+-----------+------+--------------+-----------+----------------+---------+------+--------------+---------------------------------------------+

其中,info列顯示的SQL就是占用CPU較大的SQL,針對其進行優化即可。

此外,還可以通過下列SQL,查詢下線程的其他信息,方便進一步優化:

 select * from performance_schema.events_statements_current where thread_id in (select thread_id from performance_schema.threads where thread_os_id = 32272)

通過這個結果我們可以查看具體的 SQL,看到有使用臨時表、使用了排序等信息。
查詢結果節選:

CREATED_TMP_DISK_TABLES: 1  
CREATED_TMP_TABLES: 1  
SORT_ROWS: 1  
SORT_SCAN: 1  

總結:

本文介紹了一種登陸Mysql服務器,定位CPU利用率過高的SQL的方法,可以使用此方法,快速的定位到正在數據庫里抽大煙的SQL,kill掉進程,并且優化SQL后即可解決。此方法一定要在CPU告警時使用,如果CPU已經恢復正常了,則無法使用此方法查詢了。喜歡本文請點贊收藏。

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

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

相關文章

科研所文件數據很關鍵,外發圖紙如何控制?

圖紙是科研所整個科研周期中最重要的資料類型之一。這些圖紙主要用于描述和記錄研究過程中的各種設計、實驗裝置、設備或產品原型等。 首先&#xff0c;科研所在進行新技術、新產品或新方法的研發時&#xff0c;通常需要進行詳細的設計和規劃。在這個過程中&#xff0c;科研人員…

小區物業管理收費系統源碼小程序

便捷、透明、智能化的新體驗 一款基于FastAdminUniApp開發的一款物業收費管理小程序。包含房產管理、收費標準、家屬管理、抄表管理、在線繳費、業主公告、統計報表、業主投票、可視化大屏等功能。為物業量身打造的小區收費管理系統&#xff0c;貼合物業工作場景&#xff0c;輕…

怎樣求解一個系統的穩態輸出

要求解一個系統的穩態輸出&#xff0c;需要根據系統的類型&#xff08;如線性時不變系統、非線性系統等&#xff09;、輸入信號的性質&#xff08;如階躍信號、正弦信號等&#xff09;以及系統的描述方法&#xff08;如微分方程、狀態空間模型等&#xff09;。這里主要介紹線性…

數字黃金 vs 全球計算機:比特幣與以太坊現貨 ETF 對比

撰文&#xff1a;Andrew Kang 編譯&#xff1a;J1N&#xff0c;Techub News 本文來源香港Web3媒體&#xff1a;Techub News 比特幣現貨 ETF 的通過為許多新買家打開了進入加密貨幣市場的大門&#xff0c;讓他們可以在投資組合中配置比特幣。但以太坊現貨 ETF 的通過&#xf…

AI從業者怎么做Science?清華大學AIR周浩:從文本生成到蛋白質設計的跨界探索

近日&#xff0c;北京智源大會「AI for Science」分論壇上&#xff0c;清華大學智能產業研究院副研究員周浩以「面向科學發現的生成式人工智能」為主題展開演講&#xff0c; HyperAI超神經在不違原意的前提下&#xff0c;對周浩教授的深度分享進行了整理匯總。 周浩教授演講現場…

遠程過程調用(RPC)

Hi~&#xff01;這里是奮斗的小羊&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f4a5;&#x1f4a5;個人主頁&#xff1a;奮斗的小羊 &#x1f4a5;&#x1f4a5;所屬專欄&#xff1a;C語言 &#x1f680;本系列文章為個人學習…

數字AI化銀行數字化轉型實戰手冊銀行數字化轉型大客戶營銷銷售講師培訓師唐興通談存量客戶理財金融科技與場景化

推動銀行數字化轉型的五個關鍵因素 推動銀行數字化轉型的五個關鍵因素&#xff1a; 客戶體驗。為客戶提供便利和個性化是數字化轉型的關鍵因素。銀行應開發和實施創新的數字渠道&#xff0c;例如移動應用程序、網上銀行、聊天機器人等&#xff0c;以方便獲取金融服務并提高客戶…

基于yolo的物體識別坐標轉換

一、模型簡介: 1.1、小孔成像模型簡圖如下:不考慮實際相機中存在的場曲、畸變等問題 相對關系為: 為了表述與研究的方便,我們將像面至于小孔之前,且到小孔的距離仍然是焦距f,這樣的模型與原來的小孔模型是等價的 相對關系為: 二、坐標系簡介: **世界坐標系(world coo…

2021-2024高校畢業生的就業趨勢和變化分析

一、不同行業、地區和學歷層次的高校畢業生就業情況差異 行業差異&#xff1a; 教育培訓行業&#xff1a;受“雙減”政策影響&#xff0c;教育培訓機構吸納畢業生的數量明顯下降&#xff0c;畢業生面臨重新選擇。互聯網領域&#xff1a;互聯網企業的業務優化調整力度加大&…

徹底解決 macos中chrome應用程序 的 無法更新 Chrome 彈窗提示 mac自定義參數啟動 chrome.app

mac系統中的chrome app應用在每次打開是都會提示一個 “無法更新 Chrome Chrome 無法更新至最新版本&#xff0c;因此您未能獲得最新的功能和安全修復程序。” &#xff0c; 然而最新的chrome 程序似乎在某些情況下居然會出現 輸入和顯示不一致的情況&#xff0c;暫時不想升…

You編程__封裝ElementPlus通用組件(會持續更新...)

YOU編程__封裝ElementPlus通用組件&#xff08;會持續更新…&#xff09; 1、通用表格組件 CommonTable.vue <template><div><el-form :model"query" inline class"query-form"><el-form-item><el-input v-model"query…

htmlcss面試題總結

網絡中使用最多的圖片格式有哪些 jpg, png, svg,webp,bmp; 請簡述css盒子模型 盒子模型是指html的每個元素都像一個盒子&#xff0c;可以設置寬高&#xff0c;主要由content box&#xff0c;padding box&#xff0c;border&#xff0c; 和margin組成 視頻/音頻標簽的使用 …

js棧的隊列

// 定義 Queue 類 class Queue {constructor() {// 使用兩個棧來模擬隊列this.stack1 [];this.stack2 [];}// 入隊操作&#xff0c;將元素添加到隊列末尾enqueue(element) {// 將 stack1 中的元素移到 stack2while (this.stack1.length > 0) {this.stack2.push(this.stack…

Kithara設置專用CPU

設置專用 CPU 目錄 設置專用 CPU 點擊WINDOWS R&#xff0c;運行對話框打開&#xff0c;輸入“msconfig”并確認確定。 現在會彈出一個對話框&#xff0c;您可以在其中更改 Windows 的某些設置。打開名為“引導”的第二個選項卡。 選擇要配置為使用專用模塊的操作系統。通常…

2024年道路運輸企業主要負責人試題

1、【多選題】下列關于客運車輛管理的說法中&#xff0c;正確的有( )。(ABCE) A、道路旅客運輸企業是客運車輛技術管理的責任主體。 B、道路運輸經營者應當建立車輛技術檔案制度&#xff0c;實行一車一檔。 C、車輛所有權轉移、轉籍時&#xff0c;車輛技術檔案應當隨車移交。…

移遠通信發布兩款Wi-Fi 6模組新品:率先采用亞馬遜ACK SDK for Matter方案實現互聯互通

6月26日 &#xff0c;在MWC上海展上&#xff0c;全球領先的物聯網整體解決方案供應商移遠通信聯合亞馬遜及上海博通現場宣布&#xff0c;推出支持亞馬遜Alexa Connect Kit &#xff08;ACK&#xff09;SDK for Matter方案的MCU Wi-Fi 6模組FLM163D和FLM263D。 后續&#xff0c;…

vite vue3使用axios解決跨域問題

引入依賴 npm install axios 在main.js中全局引入 import { createApp } from vue import App from ./App.vue import axios from axiosconst app createApp(App)// 全局引入axios app.config.globalProperties.$axios axiosapp.mount(#app) 修改vite.config.js的代理配置…

VBA 利用VBA查找Excel單元格內容備忘

What后的內容是要查找的文本。 lookat是查找的模式&#xff0c;xlWhole&#xff1a;是一致匹配查找&#xff0c;xlPart&#xff1a;是部分匹配查找。 需要注意的是需要判斷查找的Range是否存在&#xff0c;不進行判斷直接用的話容易發生錯誤。 Sub FindCell()Dim rngFind As…

Embedding是什么?為什么重要?

本文為 Simon Willison 在 PyBay 上發表的演講視頻的文字改進版 原文鏈接&#xff1a; https://simonwillison.net/2023/Oct/23/embeddings/ 演講視頻鏈接&#xff1a; https://youtu.be/ArnMdc-ICCM Embedding 是一個非常巧妙的技術&#xff0c;但常常和一堆令人生畏的術…

vscode中快捷生成自定義vue3模板

需求描述 新建 vue 文件后&#xff0c;需要先寫出 vue3 的基礎架構代碼&#xff0c;手動輸入效率低下&#xff01; 期待&#xff1a;輸入 v3 按 Tab 即刻生成自定義的vue3模板&#xff08;如下圖&#xff09; 實現流程 vscode 的設置中&#xff0c;選擇 用戶代碼片段 輸入 vue…