如何避免并发执行INSERT ... ON DUPLICATE KEY UPDATE导致死锁的问题

来源:2-2 安装PXC组建集群

慕九州1544730

2019-01-10

最近在做一个数据实时统计的需求,之前是定时任务统计每天数据,通过跟运维的讨论现在改成从库加一个触发器有数据新增或变更的时候触发统计,这个时候就存在一个问题,每天统计的数据可能当天那种类型数据没有产生过,那么就要insert,如果有那么就要累计update,现在想通过INSERT … ON DUPLICATE KEY UPDATE 这样的sql执行,但是之前一些业务做个(就是现在要统计的业务),数据量非常大,几天就会死锁一次,因该是运维设置了超时自动解锁了,还算可维护,现在做成触发器写存储过程,不知道老师有没有类似经历解决这个死锁问题,还查到一个解决方案是通过联合主键解决死锁问题,不知道是不是只要有联合主键数据库就会加行锁从而能解决还是理解的有问题,参考https://cloud.tencent.com/developer/article/1004900

写回答

1回答

神思者

2019-01-10

我的想法是用cancal中间件订阅binlog日志,如果数据发生变化就同步到mongodb里面,在mongodb里面做统计,mongodb是没有锁的

0
1
慕九州1544730
感谢老师回复,之前是说直接加从库,运维说没有机器了,数据量估计也扛不住才想的触发器,我再跟运维讨论一下
2019-01-10
共1条回复

MySQL数据库集群-PXC方案,解决数据库领域疑难杂症

学习PXC,打造高价值的MySQL集群

511 学习 · 217 问题

查看课程