日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 兩個人同時操縱數(shù)據(jù)庫,怎么處理并發(fā)問題?

兩個人同時操縱數(shù)據(jù)庫,怎么處理并發(fā)問題?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 12:16:18 1697170578

一、兩個人同時操縱數(shù)據(jù)庫,怎么處理并發(fā)問題

從數(shù)據(jù)庫層面上,有三種解決方式:

1.悲觀鎖

select XXX from 商品庫存表 for update 。

用戶A 和B 同時操作一個商品的庫存,數(shù)據(jù)庫層面上,必有一個先后順序。

先執(zhí)行select XXX for update 的,會得到數(shù)據(jù)庫層面上的鎖。 后到的,程序會阻塞在這一句,直到前一個釋放鎖。

壞處是 系統(tǒng)并發(fā)數(shù)到此處會急劇減小。畢竟 只能有一個用戶操作,其他人都要等著。

2.樂觀鎖

名列前茅步: 代碼中查詢商品庫存信息,并校驗數(shù)量是否大于1

Product p = getFromDB(productId);

Date lastUpdateTime = p.getUpdateTime;

if(p.total<1){

retrun;

}

第二步:更新庫存

update XXX set total =total – 1 , updateTime=now() where productId = 123 and updateTime = lastUpdateTime ;

關(guān)鍵點在于判斷影響行數(shù)是否為0。

如果為0 ,則說明執(zhí)行sql的時候,已經(jīng)沒庫存了。

核心在于 where 中的 updateTime = lastUpdateTime 。

lastUpdateTime 是上一步我們查詢的修改之前的更新時間。如果其他線程修改并提交了事務(wù),那么數(shù)據(jù)庫此刻的UpdateTime 必定和我們之前查詢出來的不一致,所以where返回空,也不會修改數(shù)據(jù)。

建議使用:

update XXX set total =newTotal , updateTime=now() where productId = 123 and total=oldTotal and updateTime = lastUpdateTime ;

具體原因同3

3.單純的sql語句

update XXX set total =total – 1 where productId = 123 and total>=1 。

本質(zhì)是在 數(shù)據(jù)庫層面 針對 數(shù)量進行增量修改(set total =total – 1 ),以及修改的時候,判斷是否可以進行庫存扣減( total>=1 )

延伸閱讀:

二、信息抽取是什么

信息抽?。╥nfromation extraction)信息抽取是一種自動化地從半結(jié)構(gòu)化和無結(jié)構(gòu)數(shù)據(jù)中抽取實體、關(guān)系以及實體屬性等結(jié)構(gòu)化信息的技術(shù)。關(guān)鍵技術(shù)包括:實體抽取、關(guān)系抽取和屬性抽取。

1、實體抽取,也稱為命名實體識別(named entity recognition,NER),是指從文本數(shù)據(jù)集中自動識別出命名實體。

當(dāng)前主流技術(shù)為面向開放域(open domain)的實體抽取。

2、關(guān)系抽取,為了得到語義信息,從相關(guān)語料中提取出實體之間的關(guān)聯(lián)關(guān)系,通過關(guān)系將實體聯(lián)系起來,才能夠形成網(wǎng)狀的知識結(jié)構(gòu)。其技術(shù)研究已經(jīng)從早期的“人工構(gòu)造語法和語義規(guī)則”(模式匹配),“統(tǒng)計機器學(xué)習(xí)”發(fā)展到“面向開放域的信息抽取方法”與“面向封閉領(lǐng)域的方法”相結(jié)合。

3、屬性抽取,目標(biāo)是從不同信息源中采集特定實體的屬性信息,如針對某個公眾人物,可以從網(wǎng)絡(luò)公開信息中得到其昵稱、生日、國籍、教育背景等信息。采用數(shù)據(jù)挖掘的方法直接從文本中挖掘?qū)嶓w屬性和屬性值之間的關(guān)系模式,據(jù)此實現(xiàn)對屬性名和屬性值在文本中的定位。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
怎么看待oracle的exadata與share nothing系列的hadoop等,以及優(yōu)缺點相互對比、各自的前途對未來的影?

一、怎么看待oracle的exadata與share nothing系列的hadoop等exadata的架構(gòu)我也仔細思考過很久,個人愚見,exadata引進了部分MPP思想,當(dāng)并非MPP...詳情>>

2023-10-13 13:58:16
MySQL數(shù)據(jù)庫char類型的長度是什么意思?

一、MySQL數(shù)據(jù)庫char類型的長度是什么意思MySQL數(shù)據(jù)庫char類型的長度是指該字段所占用的字節(jié)數(shù)。char數(shù)據(jù)類型是MySQL中固定長度的字符類型。 我...詳情>>

2023-10-13 13:51:32
“數(shù)據(jù)庫”領(lǐng)域里面的“數(shù)據(jù)字典”到底是什么?

一、“數(shù)據(jù)庫”領(lǐng)域里面的“數(shù)據(jù)字典”到底是什么數(shù)據(jù)字典是一個存放有數(shù)據(jù)庫所用的有關(guān)信息,在數(shù)據(jù)庫設(shè)計的初期將數(shù)據(jù)庫中的各類數(shù)據(jù)的描述集...詳情>>

2023-10-13 13:49:07
微博feed系統(tǒng)的推模式和拉模式的架構(gòu)是怎樣的?

一、微博feed系統(tǒng)的推模式架構(gòu)1、發(fā)布服務(wù)負責(zé)生成用戶的消息,將消息推送到數(shù)據(jù)發(fā)布中心。2、推送服務(wù)在接收到新消息后,根據(jù)消息的類型和內(nèi)容...詳情>>

2023-10-13 13:28:55
Oracle數(shù)據(jù)庫運行越來越慢,應(yīng)該怎么優(yōu)化?

一、Oracle數(shù)據(jù)庫運行越來越慢的優(yōu)化方法1、應(yīng)用層優(yōu)化應(yīng)用程序的設(shè)計和開發(fā)中,可以采用合理的數(shù)據(jù)查詢語句來減少數(shù)據(jù)庫的 I/O 操作次數(shù),例如...詳情>>

2023-10-13 13:27:44
快速通道
主站蜘蛛池模板: 峨边| 双江| 揭西县| 湘潭市| 新源县| 军事| 南丰县| 都江堰市| 朝阳区| 西乌珠穆沁旗| 来安县| 临猗县| 博野县| 老河口市| 道孚县| 蒙山县| 汉寿县| 西充县| 南宫市| 宁德市| 三门县| 乌兰县| 张家川| 高邮市| 栖霞市| 永安市| 全椒县| 来凤县| 乌兰浩特市| 铁岭市| 苏尼特左旗| 五家渠市| 隆尧县| 瑞安市| 乐陵市| 银川市| 山阳县| 白玉县| 维西| 桃园县| 天长市|