批量操作中数据库死锁的解决方法
Contents
原因
在生产环境中, 发现数据库经常报死锁.排查问题后,发现是由于RabbitMQ监听器, 批量处理SQL: insert ... on duplicate key update ...
这类SQL引起.
解决
在添加到队列之前(或出队之后), 进行重处理再进行批量操作.(比如,通过Redis缓存进行唯一键去重).
在生产环境中, 发现数据库经常报死锁.排查问题后,发现是由于RabbitMQ监听器, 批量处理SQL: insert ... on duplicate key update ...
这类SQL引起.
在添加到队列之前(或出队之后), 进行重处理再进行批量操作.(比如,通过Redis缓存进行唯一键去重).