insert on duplicate 导致的MySQL连接数和事务数居高不下
背景介绍
- 表中数据量大概两千万
- 为提高TPS,将入库和业务处理异步化。可能存在第三方业务回执通知早于数据入库。所以数据入库更新采用了
insert on duplicate
的方式 - 短时间内有大量的回执请求
- 数据库的
隔离级别为RR
问题表现
- 监控显示,连接数和事务数持续居高不下
问题猜想
- 由于数据库表中数据量比较大,事务处理较慢
- 后入的请求长时间获取不到锁导致的请求中断,然后重新尝试获取锁。在这个过程中产生了大量新的连接和事务