mysql replace 死鎖
問(wèn)題描述
各位好,遇到一個(gè)問(wèn)題,請(qǐng)教一下大家。我現(xiàn)在有一張業(yè)務(wù)表,結(jié)構(gòu)如下CREATE TABLE rms_pickup_step_agg (htl_cd varchar(20) DEFAULT NULL COMMENT ’酒店編號(hào)’,para_typ int(11) DEFAULT NULL COMMENT ’匯總類型’,para_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT ’匯總代碼’,sub_typ int(11) DEFAULT NULL COMMENT ’子類型’,sub_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT ’子類型代碼’,pickup_day int(11) DEFAULT NULL COMMENT ’Pickup day’,live_dt varchar(30) DEFAULT NULL,occ float DEFAULT NULL COMMENT ’出租房數(shù)’,rev float DEFAULT NULL COMMENT ’房費(fèi)收入’,update_dt datetime DEFAULT CURRENT_TIMESTAMP COMMENT ’更新時(shí)間’, UNIQUE KEY idx01_rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’Pickup步速表’;
現(xiàn)在有兩個(gè)線程同時(shí)執(zhí)行語(yǔ)句,線程1 執(zhí)行replace INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES (’101336’, ’0’, ’0’, ’3’, ’NC’, ’14’, ’2017’, ’7.0’, ’3160.40’, ’2017-05-29 07:31:27’);不提交
線程2 執(zhí)行 replace INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES (’101336’, ’0’, ’0’, ’3’, ’NC’, ’14’, ’2016’, ’7.0’, ’3160.40’, ’2017-05-29 07:31:27’);
發(fā)現(xiàn)線程2出現(xiàn)等待鎖的情況。
為啥會(huì)出現(xiàn)鎖?謝謝!
問(wèn)題解答
回答1:你確定是出現(xiàn)死鎖了嗎,按道理說(shuō)不會(huì)的吧,這個(gè)唯一索引不沖突。這個(gè)表沒(méi)有主鍵,你加一個(gè)主鍵吧。
回答2:innodb默認(rèn)隔離級(jí)別下,唯一索引,你又是replace,理論上只是行鎖不應(yīng)該出現(xiàn)阻塞的,確定你的操作只有這些嗎? 5.7也沒(méi)看到有這種事務(wù)鎖的更新哪
相關(guān)文章:
1. 求大神支招,php怎么操作在一個(gè)html文件的<head>標(biāo)記內(nèi)添加內(nèi)容?2. 安裝了“PHP工具箱”,但只能以“游客”身份登錄3. 老師們php,插入數(shù)據(jù)庫(kù)mysql,都是空的,要怎么解決4. 跨類調(diào)用后,找不到方法5. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?6. 致命錯(cuò)誤: Class ’appfacadeTest’ not found7. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)8. PHP類屬性聲明?9. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。10. phpstady在win10上運(yùn)行
