前言:
切记,数据库一定要备份一定要备份,还有网上所说的重启服务器,不要信,没有老板的点头这个责任不要负,重启服务器相当于此服务器下的所有系统都会进入重启状态,暂时瘫痪是一定的,宁愿不优化也不要重启服务器。
关于宝塔页面CPU使用率满载状态的处理方法
1. 首先打开宝塔页面,找到终端,输入Linux命令top,查询CPU使用率最高的一项,如图所示:
1)
2)
2.找到使用率最高的进程后进行处理,如上图所示,这里以mysql进程为例,假如说mysql进程CPU使用率过高,就可以用以下方式进行处理:
第一步:在Liunx终端中输入:mysql –u root –p命令 进入数据库;
第二步:输入管理员密码,可由管理员提供或者从宝塔页面中数据库选项中查看root密码。
第三步:查看当前正在执行的sql语句 命令为:show full processlist;
由下图可得知此时此查询为嵌套查询,从中可得知正在执行的数据库名称为 ‘api _surveyxpress'。 表名为 ‘SurveyHistory’ 字段名为 ‘Survey’ 。 并且看到where条件都是Survey字段,由此可推出应该是此字段没有加上索引,接下来就需要找到这个表字段,加上索引。
第四步:进入所对应的数据库中 命令为 use name; (name为数据库名称 此处数据库名称为api _surveyxpress)
第五步:查询该数据库中所有的表 验证表SurveyHistory是否存在 命令为:show tables;
第六步:查看表SurveyHistory结构 验证字段Survey是否存在
命令为:DESC 表名 ; (这里表名为SurveyHistory)
第七步:找到字段surveyId并为其添加索引。
命令:CREATE INDEX 索引名 ON 表名(字段名);
(注意,索引名必须全部都为小写,常用索引名为index_字段名。)
(这里添加索引命令可为
CREATE INDEX index_surveyid ON SurveyHistory(surveyId) )
第八步:添加完后再次查询数据库当前正在执行的sql语句。此时发现嵌套查询变成了表格式的精准查询:
第九步:添加完索引后需要进入宝塔主页面,查看预设定内存
第十步:从左侧导航栏进入数据库 点击备份 对数据库进行备份,因为任何操作都有可能使数据损坏,所以提前备份 有备无患。
第十一步:从左侧导航栏进入软件商店,找到软件mysql,点击右侧设置
第十二步:选择性能调整 将优化方案设定成你所需求的内存标准 我这里所需求的内存标准是最大不超过16991MB 因此就将优化方案设定为
16G-32G.
第十三步:点击保存,并且重启数据库(切记,一定要备份一定要备份,还有网上所说的重启服务器,不要信,没有老板的点头这个责任不要负,重启服务器相当于此服务器下的所有系统都会进入重启状态,暂时瘫痪是一定的,宁愿不优化也不要重启服务器。)
完成以上步骤你会发现CPU使用率降低了,负载也低了。
PS:
操作原理:
此原理很简单,其实步骤都不难,难的只是思路。
说白了就是运用了索引的优点:
• 索引优点
o 可以加快数据的查询速度
• 索引缺点
o 当对表中的数据进行增加、删除和修改的时候,索引也要动态的调整,降低了数据的维护速度
o 索引需要占物理空间
只要有足够的内存,索引就会加快增删改查的原有速度,变为精确查询;嵌套查询可能sql查询效率会慢,加上索引的话,只要查索引名立马就知道是哪个。
还有就是利用加大加大最大使用内存的方法加大运行空间,使系统会有更多的空间运行。
以上为本人实践总结,如果有不同看法与方式欢迎分享交流,如果文章内有错误之处还请指出便于及时更改。
Ps:本人只是分享方法,此方法并不是完全适用每种情况,请各位大佬根据情况酌情使用,还请用之前仔细分析,如有不良后果,请自行负责,本人概不负责,谢谢。