sql语句为什么长时间处于waiting for handler commit状态?
一般就这几种问题,需要分析下
事务未提交,当一个语句启动了一个事务,但未执行COMMIT或ROLLBACK语句提交或回滚事务时,该语句会处于waiting for handler commit状态。这是因为InnoDB存储引擎要等待事务结束才能释放相关的锁资源。
当一个语句需要访问被其他事务锁定的资源时,该语句会等待锁释放,进入waiting for handler commit状态。
如果硬盘I/O出现瓶颈,MySQL在读写数据文件和日志文件时也会被阻塞,从而进入等待状态。