我在C#.NET中构建了一个使用MySql作为数据库的应用程序。我的应用程序使用Parallel API(如此多线程)在数据库中插入和更新数据。作为参考,多线程触发的查询看起来像:
Update User set IsActive = 1 where UserID = 1 --each thread updates a different user id
这一直适用于我管理的服务器和开发机器。
但是,我们最近将MySql数据库迁移到了Amazon RDS。从那以后,如果我运行这个多线程查询(即使只有两个并发线程),它会引发异常:
Deadlock found when trying to get lock; try restarting transaction
有这个问题的经验吗? Amazon RDS中是否有一些配置与默认的MySql安装不同?
提前致谢!
P.S。我在dba.stackexchange.com上发布了同样的问题 - 我希望mods没问题!