日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql 写入400_MySQL5.7运行CPU达百分之400处理方案

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 写入400_MySQL5.7运行CPU达百分之400处理方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶在使用 MySQL 實例時,會遇到 CPU 使用率過高甚至達到 100% 的情況。本文將介紹造成該狀況的常見原因以及解決方法,并通過 CPU 使用率為 100% 的典型場景,來分析引起該狀況的原因及其相應的解決方案。

常見原因

系統執行應用提交查詢(包括數據修改操作)時需要大量的邏輯讀(邏輯 IO,執行查詢所需訪問的表的數據行數),所以系統需要消耗大量的 CPU 資源以維護從存儲系統讀取到內存中的數據一致性。

說明:大量行鎖沖突、行鎖等待或后臺任務也有可能會導致實例的 CPU 使用率過高,但這些情況出現的概率非常低,本文不做討論。

一、定位問題SQL

數據庫CPU超頻,首要原因分析為執行SQL導致,先定位正在執行的SQL

# 進入數據庫連接工具,或者MySQL命令客戶端

# 查詢正在執行的SQL

select * from information_schema.`PROCESSLIST` where info is not null;

根據COMMAND、TIME、STATE、INFO三個字段查詢SQL信息

COMMAND - 執行的數據操作類型

TIME - 執行的時間

STATE - 執行的狀態

INFO - 執行的具體SQL

發現很長一段時間,查詢都處在 “Sending data”狀態

查詢一下“Sending data”狀態的含義,原來這個狀態的名稱很具有誤導性,所謂的“Sending data”并不是單純的發送數據,而是包括“收集 + 發送 數據”。

這里的關鍵是為什么要收集數據,原因在于:mysql使用“索引”完成查詢結束后,mysql得到了一堆的行id,如果有的列并不在索引中,mysql需要重新到“數據行”上將需要返回的數據讀取出來返回個客戶端。

二、使用explain查看SQL使用索引過程

explain顯示了MySQL如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句

使用方法,在select語句前加上explain就可以了,下面是一個使用explain查詢SQL的例子

explain select * from user_info where tel = '17000000000';

三、show profile

為了進一步驗證查詢的時間分布,于是使用了show profile命令來查看詳細的時間分布

首先打開配置:set profiling=on;

執行完查詢后,使用show profiles查看query id;

使用show profile for query query_id查看詳細信息;

總結

以上是生活随笔為你收集整理的mysql 写入400_MySQL5.7运行CPU达百分之400处理方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。