前一天通过mysqldump --single-transatcion
导出数据,由于数据量较大、磁盘速度较慢及网速也比较慢(在另一台服务器操作)整个备份过程消耗了几十个小时。今天终于是完了,文件有100多g。
打开系统,发现问题,数据库响应太慢了,检查发现磁盘io过多且大量读写。
那么就要查出为什么会发生大量读写,查了很长时间,大概找到原因了
因为 --single-transaction 会开始事务,但长时间未提交,所以mysql要记录期间的所有操作,待事务提交之后才可以删除。
该事务提交之后,mysql就会处理这期间的数据,该删的就删。
参考:https://www.cnblogs.com/zhangcaiwang/p/16127618.html
执行 show engine innodb status ;
查找 History list length
,看后面的数字,等什么时候变小了就好了
以上只是猜测。