根据同一订单号同时在一个事务中对两条记录做了修改操作,导致锁表。

##数据初始化,插入模拟数据。

##窗口1 模拟
START TRANSACTION;
修改操作
COMMIT;


##窗口2 模拟
START TRANSACTION;
修改操作
COMMIT;


/** 超时报错
错误代码: 1205
Lock wait timeout exceeded; try restarting transaction
**/

##解决方法:表增加订单号,来源字段增加联合索引。


### 191229 复核 order_pay_trans_uidx,trx_inx trx_inx 查看索引记录
EXPLAIN
SELECT * FROM 表 WHERE order_no=191114460362 AND pay_kind=2002 AND trans_type='01' AND source=6;

# order_pay_trans_uidx,trx_inx trx_inx 查看索引记录
EXPLAIN
SELECT * FROM 表 WHERE order_no=191114460362 AND pay_kind=2002 AND trans_type='01' AND source=13;


相关文章:

  • 2022-01-22
  • 2022-02-14
  • 2022-01-07
  • 2021-06-21
  • 2022-12-23
  • 2021-11-16
  • 2021-12-05
猜你喜欢
  • 2022-02-09
  • 2021-08-03
  • 2022-12-23
  • 2021-06-22
  • 2021-10-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案