課程
/后端開發(fā)
/Java
/Java高并發(fā)秒殺API之高并發(fā)優(yōu)化
為什么說插入的時候沖突率低,網絡延遲和GC可以并行?。窟@樣加快速度有點不理解?
2017-08-09
源自:Java高并發(fā)秒殺API之高并發(fā)優(yōu)化 3-1
正在回答
因為插入數據是插入的不同行,可以并行(沖突率低)。只有重復秒殺時才會沖突,但是由于userphone+id為唯一主鍵所以不會重復秒殺。
insert,update,delete,select for update都是隱式的行級獨占鎖。
分析的也對insert是新數據,update是老數據
首先是在更新操作的時候給行加鎖,插入并不會加鎖,如果更新操作在前,那么就需要執(zhí)行完更新和插入以后事務提交或回滾才釋放鎖,而如果插入在前,則更新完以后事務提交或回滾就釋放鎖。也就是說是更新在前加鎖和釋放鎖之間兩次的網絡延遲和GC,如果插入在前則加鎖和釋放鎖之間只有一次的網絡延遲和GC,也就是減少的持有鎖的時間。
舉報
Java實現高并發(fā)秒殺API的第四門課,小伙伴一定可以從中受益
1 回答關于網絡延遲和數據庫鎖的問題
2 回答為什么不用存儲過程來解決多條sql語句執(zhí)行帶來的網絡延遲
2 回答沒懂,為何insert 和 update 換了下位置, 網絡延遲就減少一倍????
2 回答先執(zhí)行插入,在執(zhí)行減庫存,沒有過濾掉gc和緩存啊
2 回答這個項目寫完了可不可以作為我找工作時候說的項目
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-23
因為插入數據是插入的不同行,可以并行(沖突率低)。只有重復秒殺時才會沖突,但是由于userphone+id為唯一主鍵所以不會重復秒殺。
2017-11-16
insert,update,delete,select for update都是隱式的行級獨占鎖。
分析的也對insert是新數據,update是老數據
2017-08-10
首先是在更新操作的時候給行加鎖,插入并不會加鎖,如果更新操作在前,那么就需要執(zhí)行完更新和插入以后事務提交或回滾才釋放鎖,而如果插入在前,則更新完以后事務提交或回滾就釋放鎖。也就是說是更新在前加鎖和釋放鎖之間兩次的網絡延遲和GC,如果插入在前則加鎖和釋放鎖之間只有一次的網絡延遲和GC,也就是減少的持有鎖的時間。