如果有个很大的回滚日志并且表空间因此增长很快,可以强制mysql减速来使innodb的清理线程可以跟得上。这听起来不怎么样,但是没有办法,否则,innodb将保持数据写入,填充磁盘直到最后磁盘空间爆满,或者表空间大于定义的上限
为控制写入速度,可以设置innodb_max_purge_lag()变量为一个大于0的值,这个值表示innodb开始延迟后面的语句更新数据前,可以等待被清除的最大的事务数量,你必须知道工作负载以决定一个合理的值,例如,事务平均影响1kb的行,并且可以容许表空间里有100MB的未清理的行,那么可以设置这个值为100000
牢记,没有清理的行版本会对所有的查询产生影响,因为他们事实上使得表和索引更大了,如果清理线程确实跟不上,性能可能显著的下面,设置innodb_max_purge_lag变量也会降低性能,但是它的伤害较少
innodb_max_purge_lag,布布扣,bubuko.com
时间: 2024-11-02 23:41:57