InnoDB 中的清除操作是一类定期回收无用数据的操作。在之前的几个版本中,清除操作是主线程的一部分,这意味着它在运行时可能会堵塞其他的数据操作,比如,删除一张大表。
从MySQL5.5.X版本开始,该操作运行于独立的线程中,并支持更多的并发数。用户可通过设置innodb_purge_threads 配置参数来选择清除操作是否使用单独的线程,默认情况下该参数设置为 0(不使用单独线程),设置为1时表示使用单独的清除线程。
注意
innodb_purge_threads参数不支持动态修改,需要添加到my.cnf里修改,并且要重启才能生效。当设置为1时,需要结合innodb_purge_batch_size参数来使用,默认值是20,最大可设置为5000,这个参数一般不用调整,使用默认的即可。
关于innodb_purge_threads参数的介绍,请参见MySQL5.5手册: