- 可以在 information_schema 库的 innodb_trx 这个表中查询长事务,比如下面这个语句,用于查找持续时间超过 60s 的事务。
select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60
监控 information_schema.Innodb_trx 表,设置长事务阈值,超过就报警 / 或者 kill
- 把 innodb_undo_tablespaces 设置成 2(或更大的值)。如果真的出现大事务导致回滚段过大,这样设置后清理起来更方便
用于设定创建的undo表空间的个数,在mysql_install_db时初始化后,就再也不能被改动了,修改该值会导致MySQL无法启动。
默认值为0,表示不独立设置undo的tablespace,默认记录到ibdata中;否则,则在undo目录下创建这么多个undo文件(每个文件的默认大小为10M)。最多可以设置到126。
例如假定设置该值为4,那么就会在mysql的data目录下创建命名为undo001~undo004的undo tablespace文件。
不支持后期修改