中午休息时,
mysql
mysql 对cpu 的使用率 162% , 整服务的cpu 使用率 41.5%
正常作业的时候
mysql 对cpu 的使用率 > 300% , 整服务的cpu 使用率 99%
所有的执行查询,都非常慢,
清除linux 服务器缓存, 重启mysql ,修改my.ini 都没有作用
主要是实际没有生产的时候,数据库数据活动不大的情况下,cpu 使用率都超过 100%
检查session 主要是和 打包台的一张包裹表相关 ,
启动mysql 的 innobd_status_output
show variables like"innodb_status_output%";
set GLOBAL innodb_status_output=OFF;
set GLOBAL innodb_status_output_locks=OFF;
很多死锁 和 package_order_tab 相关
由于这张表实际作业时会使用, 前台看的另外一个数据库,相同的表结构的表,因此考虑数据归档,
创建一个结构一样的表, 利用存储过程把数据,迁移过去,并删除原表的数据
但是,执行太慢, 在夜晚,没有打包太执行的时候,半小时在归档500 行数据,
这张表做,主键查询 都要0.4 秒 , 一共才20w数据
后来,
把对应pacakge_order_tab 和 package_order_line_tab 的 索引, 主键索引,都删除,重新设置 , 没有问题,非常快
mysql cpu 在多人同时作业时也在 50% 左右