MySQL的事务启动方式
- 显示启动事务:begin/start transaction - commit/rollback
- 隐式启动事务:配置 set autocommit=0,随便执行一个 select就可以启动事务,不会自动提交,直到主动 commit/rollback 或断开连接。注:这种方式容易导致长连接。
建议采用第一种,考虑多一次交互的问题,使用commit work and chain 语法代替 commit,表示提交当前的同时开启下一段事务。使用以下命令监控超过 60s 的事务。
1 | select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60 |