关于多线程下mysql出现Deadlock found when trying to get lock

MySql 码拜 9年前 (2016-01-30) 2889次浏览
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
有100个账号,同时开启30个线程同步线上订单数据。
一个事务里,执行下面两个操作。
// 先把以前的记录删掉,根据索引 order_id
orderDao.batchDeleteOrder(alibabaOrders);
// 保存最新的记录
orderDao.batchCreateOrder(alibabaOrders);
假如本人把索引idx_t_order_order_id删掉就不会出现这种错误。
问一下怎么解决呢?或建议下,本人这样同步数据的方式是不是不对?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于多线程下mysql出现Deadlock found when trying to get lock
喜欢 (0)
[1034331897@qq.com]
分享 (0)