欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

mysql死鎖問題實例分析

這篇文章主要介紹“MySQL死鎖問題實例分析”,在日常操作中,相信很多人在mysql死鎖問題實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql死鎖問題實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站于2013年開始,先為江陽等服務(wù)建站,江陽等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為江陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、問題描述:

        一張表的非索引字段更新,并發(fā)環(huán)境下出現(xiàn)鎖表,導(dǎo)致死鎖!

二、簡要分析:

        兩個事務(wù),一個事務(wù),在執(zhí)行一個索引字段更新sql,另外一個事務(wù)正好進行主鍵條件更新,也進行非索引更新。導(dǎo)致兩個事務(wù)交叉等待釋放鎖,所以出現(xiàn)死鎖問題。

三、數(shù)據(jù)模擬:

創(chuàng)建表:

create table user(

  id int(10) NOT NULL AUTO_INCREMENT,

  user_id varchar(20),

  id_card_no varchar(50),

  name varchar(30),

  password varchar(30),

  sex char(1),

  birthday date,

  PRIMARY KEY (`id`),

  INDEX index_name (user_id(20))

);

插入兩條數(shù)據(jù)

insert into user (user_id,id_card_no,name,password,sex,birthday) values('000001','001','zhangsan','123','t','1993-05-27');

insert into user (user_id,id_card_no,name,password,sex,birthday) values('000002','002','lisi','123','t','1993-05-27');

四、問題復(fù)現(xiàn)

step 1:開啟一個事務(wù)1,首先執(zhí)行主鍵更新

  begin;

  update user set name = "test transaction by zz" where id = 1;

step 2:再開啟一個事務(wù)2,執(zhí)行另一個主鍵更新語句,

   begin;

   update user set name = "test transaction by zz" where id = 2;

step 3:事務(wù)1執(zhí)行一條非索引字段更新,不要提交事務(wù);

  update user set name = "test transaction by zz name" where user_id = '000001';

step 4:事務(wù)2在執(zhí)行一條非索引字段更新,不要提交事務(wù);

  update user set name = "test transaction by zz name" where user_id = '000002';

運行結(jié)果:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction.

mysql死鎖問題實例分析

四、分析結(jié)果:

1.兩個事務(wù),交叉等待對方釋放鎖,就會出現(xiàn)死鎖。

2.如上操作,事務(wù)1執(zhí)行sql2的時候等待事務(wù)2釋放行鎖,事務(wù)2這時候可能也進行非索引字段更新,需要等待事務(wù)1釋放表鎖,這就出現(xiàn)了死鎖。

3.主鍵更新,只會鎖住該索引,這就是行級鎖的概念;索引字段更新或者刪除,會先根據(jù)索引字段,找到相應(yīng)的主鍵記錄,再進行加鎖;非主鍵,非索引字段的更新和刪除默認會鎖住整張表,這就是一個表級鎖的概念;

五、優(yōu)化與建議:

1.避免非索引字段的更新和刪除操作。

2.如果有這樣的更新,建議事務(wù)外查詢,然后根據(jù)索引字段進行更新,就不會造成鎖表的情況;

3.對相應(yīng)的字段加索引,但是一張表中索引不宜太多,會影響數(shù)據(jù)庫性能,最好四個以內(nèi),對于超過100ms的查詢,需要優(yōu)化;但是加索引也不是最好的解決方案,索引更新,也會先找到索引對應(yīng)的主鍵,再進行加鎖,也有一點點性能問題。但是滿足大部分的業(yè)務(wù)需求。

4.系統(tǒng)需要異常情況要有重試機制,對于數(shù)據(jù)庫這樣的,死鎖問題,一般的在并發(fā)下出現(xiàn),也是會有系統(tǒng)空缺的時候,這時候有重試,就稍微好一點。但是對于時效性比較高的業(yè)務(wù),一定不能出現(xiàn)這種問題。

到此,關(guān)于“mysql死鎖問題實例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

本文標題:mysql死鎖問題實例分析
本文網(wǎng)址:http://aaarwkj.com/article4/jjphoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站設(shè)計、虛擬主機、網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
日韩中文字幕在线乱码| 福利视频一区二区视频| 亚洲国产在线一区二区| 国产午夜亚洲精品福利| 国产精品日韩欧美一区二区| 亚洲成a人片777777久久| 刘亦菲毛片一区二区三区| 男女视频一区二区三区在线观看| 国产传媒在线观看网站| 日本韩国av在线观看| 九九视频在线精品免费观看| 亚洲一区欧美日韩91| 亚洲国产精品欧美激情| 美国一级二级三级黄片| 一区二区亚洲欧美精品| 久久精品91久久久| 成人偷拍自拍在线视频| 日本一级a级黄免视频| 欧美国产精品中文字幕| 黄色录像日本黄色录像| 婷婷色综合一区二区三区| 国产欧美日韩一区二区三区四区| 日本精品av免费观看| 一区二区三区特黄色片| 青青草原综合视频在线| 精品亚洲一区二区三区四| 在线观看视频免费午夜| 国产精品重口调教系列| 久久成人激情免费视频| 午夜少妇福利在线观看| 国产日韩精品国产二区| 少妇内射呻吟中文字幕视频| 一区二区三区亚洲精品在线| 不用播放器的av蜜臀| 欧美日韩一区二区三区色| 日韩精品一区二区一牛| 99久久成人精品国产片| 欧美日韩亚洲中文国产| 人妻少妇精品一区毛二区| 粉嫩国产av一区二区三区| 国产亚洲日本精品二区|