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处理方案相关推荐
- 阿里云 mysql 100_MySQL服务进程占用系统CPU达100%-阿里云开发者社区
故障现象:ping云主机严重丢包,丢包率达99%,仅有一两个包可到达:更无法远程: 排查:云主机 CentOS6.4 后台查看CPU占用高达99% 还好能登入系统,操作也并不卡顿: top查看 mys ...
- Nginx运行CPU亲和力
Nginx运行CPU亲和力 1.Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2.如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/c ...
- mysql 编译cpu数量_合适MySQL的Xeon 55XX系列CPU编译参数
适合mysql的Xeon 55XX系列CPU编译参数 本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://www.penglixu ...
- 分散mysql的写入压力_缓解MySQL写入压力和主从延迟的尝试
标签: 缓解MySQL写入压力和主从延迟的尝试 http://mp.weixin.qq.com/s?__biz=MzA5Njg5ODMzMg==&mid=208512935&idx=1 ...
- MySQL怎么导入webcontent_把网页信息添加到mysql,在MyEclipse运行Tomcat出现下面的错误,弄不明白,求助怎么解决呀...
把网页信息添加到mysql,在MyEclipse运行Tomcat出现下面的错误,弄不明白,求助怎么解决呀0 letian012014.01.05浏览132次分享举报 获取的数据源是出错 2010-3- ...
- dev可以运行mysql文件夹_Linux查看mysql 安装路径和运行路径
一.查看文件安装路径 由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址). 这里以mysql为例.比如说我安装了mysql,但是不知道文件都安装在哪些地方.放在哪些文件夹里,可以用 ...
- Mysql写入数据时,adapter 日志报ES连接错误
Mysql写入数据时,adapter 日志报ES连接错误 日志如下: 2021-09-20 13:51:03.795 [pool-1-thread-1] ERROR c.a.otter.canal.a ...
- 易语言mysql乱码_分享一个解决MySQL写入中文乱码的方法
[编程语言:易语言] 之前有发帖请教过如何解决MySQL写入中文乱码的问题.但没人会,或者是会的人不想回答.搜索网上的答案并尝试很多次无效,所以当时就因为这个乱码问题搁浅了一个软件很多日子. 直到昨天 ...
- mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )
原标题:MySQL写入缓冲区在数据库中的作用( Change Buffer ) 介绍另外一种重要的数据变更日志,也就是InnoDB change buffer.Change buffer的主要目的是将 ...
最新文章
- 制作安全网站的checklist
- 跨编译单元之初始化次序
- 鸟哥的Linux私房菜基础学习篇(第二版)第十二章课后习题与答案
- C# DropDownList 绑定枚举类
- C# WinForm 弹出模式窗口操作滚动条
- 使用redis的发布订阅模式实现消息队列
- CodeForces 869E The Untended Antiquity 二维树状数组,随机hash
- c语言 void**类型转换,void *和其他指针的转化
- 数据时代总结思维导图模板分享及绘制技巧
- am335x mysql_Ubuntu下编译ARM平台QtEmbedded的MySQL和MySQL插件
- 2016年事记与感悟
- 流程图讲解_流程图小作文练习,详细讲解+精选范文!你们的魔鬼来了(一)...
- 从NASA获取全球气象数据
- 高速公路收费站通行能力分析与设计
- IOM计算机组成原理,计算机组成原理设计教案.doc
- 【程序员情商up】说话的智慧
- STM32 USB组合设备HID+MIDI
- 上海域格LTE模块CLM920_JC3贴片SIM卡双卡切换
- 全国程序员高考卷曝光,你能答对几题?
- Python:打包配置文件 setup.py 详解
热门文章
- 2022-2028年中国橡胶漆产业发展动态及未来趋势预测报告
- RSA、MD5等加密算法的区别和应用
- docker 常用命令集合
- 残差复合正态分布的重要性
- LeetCode简单题之最长的美好子字符串
- MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
- C++ 虚函数与存虚函数
- Android ScrollView 滑动指定的距离
- java.lang.RuntimeException: Parcelable encountered IOException writing
- uwsgi: invalid option -- 'x'