mysql数据库索引及事务demo

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

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

##窗口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;


posted @ 2020-06-18 08:50  全新时代-小小程序员大梦想  阅读(208)  评论(0编辑  收藏  举报