最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的。于是搜索各方资料,终于成功解决问题。备忘以及分享一下,希望可以帮助各位新手朋友。

(服务器运行环境是Windows server2008,Linux思路类似。只是命令行工具不同。)

首先通过cmd 输入 mysql -h localhost -u root -p 回车进入mysql数据库

通过 show processlist; 指令查看当前 mysql 使用频繁的 sql 语句

反复调用此命令发现经常出现多个类似的select语句

经过排查发现是where子句中的条件判断中用到的字段没有建立索引, MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。

ALTER TABLE `表名称` ADD INDEX ( `字段名称` ) ;

通过上方语句创建相关字段的索引后CPU立马下降到20%左右。成功解决问题。

小Tips:phpmyadmin中通过表结构“操作”列表中的“索引”按钮创建索引更方便处理,比较适合懒人操作,点一下鼠标即可解决  (* ̄︶ ̄)

总结:

对 WHERE, JOIN, MAX(), MIN(), ORDER BY 等子句中的条件判断中用到的字段,应该根据其建立索引 INDEX。索引被用来快速找出在一个列上用一特定值的行。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。

如果一个表有1000行,这比顺序读取至少快100倍。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。

根据 mysql 的开发文档,索引 index 用于:

1,快速找出匹配一个WHERE子句的行2,当执行联结(JOIN)时,从其他表检索行。3,对特定的索引列找出MAX()或MIN()值4,如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。5,在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。

mysql cpu使用率100_Mysql CPU使用率长期100%的解决思路备忘相关推荐

  1. MySQL:错误代码1215 无法添加外键约束的解决思路

    环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...

  2. dump分析工具_Java应用CPU过高,如何排查?参考解决思路和常用工具总结

    本文总结了一些常见的线上应急现象和对应排查步骤和工具.分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱.毕竟作者自己也是从手忙脚乱时走过来的. 只不过这里先提示一下 ...

  3. mysql表名可以用中文么_[急]MySQL中建表不能使用中文字段吗?解决思路

    mysql> set names 'gb2312'; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE 销售小姐(雇员号 I ...

  4. MySQL表内容修改,脑子记不住东西了。备忘

    MySql增加字段.删除字段.修改字段名称.修改字段类型 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各 数据库中基本通用. 下面列出: 1.增加一个字段 alter table ...

  5. Linux CPU 100%问题 | 理解 CPU负载和 CPU使用率

    CPU 负载和 CPU 使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. CPU 使用率反映的是当前 CPU 的繁忙程度,忽高忽低的原因在于占用 CPU 处理时间的进程可能处于 IO 等待状态 ...

  6. linux 【CPU性能】CPU使用率达到100%怎么办?

    文章目录 1. 简介 2. CPU 使用率 3. 怎么查看 CPU 使用率 4. CPU 使用率过高怎么办? 5. 案例 6. 总结 1. 简介 你最常用什么指标来描述系统的 CPU 性能呢?我想你的 ...

  7. Linux查看CPU使用率、内存使用率等

    一.CPU使用率查看 1. cat /proc/loadavg命令 $ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347 前三项分别是最近1分钟.5分钟和15分钟 ...

  8. CPU负载与CPU使用率

    CPU负载与CPU使用率 1. CPU 负载与 CPU 使用率 2. 计算CPU使用率 2.1 使用vmstat获取 CPU 使用率 2.1.1 vmstat工具 2.1.2 参数用法 2.1.3 使 ...

  9. Java harddisk pc cpu,java获得cpu使用率

    [Key words]Javacard; CPU; Smartcard 1 概述 1.1 Javacard 简介 智能卡是指集成了 CPU. ROM. RAM. COS(芯片操作 系统 )和 EEPR ...

最新文章

  1. Awk之if ,else if,else用法
  2. [转]linux下的fms2流媒体服务器搭建六部曲之五-----flv播放器制作篇
  3. Python爬虫==入门基础概念
  4. 创建视图,查询表空间的利用情况
  5. CentOS压缩命令zip
  6. 一台linux上运行多个mysql_linux下同时运行多个mysql
  7. 路由器mysql密码重置密码_【验证】mysql root密码恢复
  8. TensorFlow2.0(八)--tf.function函数转换
  9. FFMPEG合两帧YUV420P为一帧
  10. python试卷管理系统的设计与实现_《数据结构》考试系统的设计与实现.doc
  11. 使用命令行打包发布cocostudio资源
  12. Shader 学习笔记:水面
  13. 怎样创建数据库?4种流行数据库的创建方法介绍
  14. 思维转换感悟与区块链视频资料分享
  15. oracle查询备份backup失败,NBU备份Oracle问题,status96 和status6 典型报错
  16. Python制作登陆界面(1)(超简单)
  17. [精品教程,新老鸟必读]:极限装机、优化全攻略(新手优化教程)
  18. 计算机应用基础是科技,《最新计算机应用基础》科学技术指南丛书.pdf
  19. C#dgv调用数据中存储的路径来显示图片
  20. 1024: 手机话费

热门文章

  1. 《那些年啊,那些事——一个程序员的奋斗史》——80
  2. nginx 动态设置黑名单
  3. nodejs multer封装 上传文件
  4. C++核心编程(黑马程序员视频个人总结)
  5. fun函数是什么php,c语言fun函数有什么例题?_后端开发
  6. 前滚和回滚的区别 .
  7. Flutter Row 实例 —— 新手礼包
  8. java json循环引用_填坑,解决json对象循环引用,在复杂案例中的应用
  9. Zabbix客户端的安装过程
  10. 杰理之充电仓发射器【篇】