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删掉就不会出现这种错误。
问一下怎么解决呢?或建议下,本人这样同步数据的方式是不是不对?
有100个账号,同时开启30个线程同步线上订单数据。
一个事务里,执行下面两个操作。
// 先把以前的记录删掉,根据索引 order_id
orderDao.batchDeleteOrder(alibabaOrders);
// 保存最新的记录
orderDao.batchCreateOrder(alibabaOrders);
假如本人把索引idx_t_order_order_id删掉就不会出现这种错误。
问一下怎么解决呢?或建议下,本人这样同步数据的方式是不是不对?