mysql replace 死鎖
問題描述
各位好,遇到一個問題,請教一下大家。我現(xiàn)在有一張業(yè)務(wù)表,結(jié)構(gòu)如下CREATE TABLE rms_pickup_step_agg (htl_cd varchar(20) DEFAULT NULL COMMENT ’酒店編號’,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 ’房費收入’,update_dt datetime DEFAULT CURRENT_TIMESTAMP COMMENT ’更新時間’, 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)在有兩個線程同時執(zhí)行語句,線程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)等待鎖的情況。
為啥會出現(xiàn)鎖?謝謝!
問題解答
回答1:你確定是出現(xiàn)死鎖了嗎,按道理說不會的吧,這個唯一索引不沖突。這個表沒有主鍵,你加一個主鍵吧。
回答2:innodb默認(rèn)隔離級別下,唯一索引,你又是replace,理論上只是行鎖不應(yīng)該出現(xiàn)阻塞的,確定你的操作只有這些嗎? 5.7也沒看到有這種事務(wù)鎖的更新哪
相關(guān)文章:
1. 網(wǎng)頁爬蟲 - python爬蟲翻頁問題,請問各位大神我這段代碼怎樣翻頁,還有價格要登陸后才能看到,應(yīng)該怎么解決2. python如何不改動文件的情況下修改文件的 修改日期3. python 正則表達(dá)式提取4. 算法 - python 給定一個正整數(shù)a和一個包含任意個正整數(shù)的 列表 b,求所有<=a 的加法組合5. javascript - 微信h5發(fā)送圖文信息,部分設(shè)備點擊“發(fā)送”按鈕時沒反應(yīng),問題較難重現(xiàn),如何能找到可能存在問題的點?6. javascript - 微信小程序里怎么把頁面轉(zhuǎn)成圖片分享7. 大家好,請問在python腳本中怎么用virtualenv激活指定的環(huán)境?8. python - 求一個在def中可以實現(xiàn)調(diào)用本def滿足特定條件continue效果的方法(標(biāo)題說不太清楚,請見題內(nèi)描述)9. javascript - JS用ajax爬取百度外賣店家信息10. python - Pycharm調(diào)試代碼進(jìn)行列表遍歷時,如何直接賦值指定元素
