悲觀鎖定的應用
今天同事發過來的一個問題:
悲觀鎖定
xxxx 2008年03月26日 10:02:18
paul,問一下。 鎖表是需在開始事務之前做,還是之後做?
Paul Yi(Paul Yi) 2008年03月26日 10:02:51
事務之前
xxxx 2008年03月26日 10:03:17
那解鎖是在提交事務之後?
Paul Yi(Paul Yi) 2008年03月26日 10:04:29
鎖住了這個表還有對這個表其他相關事務操作嗎
xxxx 2008年03月26日 10:05:38
是的。
1鎖表
2開始事務
3對該表查詢
4插入或更新
5提交事務
6解鎖
Paul Yi(Paul Yi) 2008年03月26日 10:07:11
鎖住了這個表查詢應該可以但不能對這個表作插入或更新資料吧
xxxx 2008年03月26日 10:08:33
如果有一個業務需要先查詢有沒有記錄,有的話更新該記錄,沒有的話要插入一條。
但這個業務是併發的,那要怎樣處理?
xxxx 2008年03月26日 10:09:05
我想是先鎖表,然後判斷有無存在的記錄,處理完後解鎖。這樣來處理併發問題。
xxxx 2008年03月26日 10:09:19
就不會因為併發,同時插入兩天一樣的記錄
xxxx 2008年03月26日 10:09:25
兩條
Paul Yi(Paul Yi) 2008年03月26日 10:11:40
select * from table for update 這樣你看下
4插入或更新
5提交事務
6解鎖
xxxx 2008年03月26日 10:13:14
什麼時候開始事務?
Paul Yi(Paul Yi) 2008年03月26日 10:13:40
select * from table for update 這個就開始了
xxxx 2008年03月26日 10:14:26
1。開始事務
2。select * from table for update
3。插入或更新
5。提交事務
這樣的話,就算併發,它也會鎖死在第2步中
Paul Yi(Paul Yi) 2008年03月26日 10:14:40
他這個是鎖住記錄,並沒鎖表
xxxx 2008年03月26日 10:16:19
鎖住所有記錄的話,併發時會停在第2步中,這樣就不會有問題了
Paul Yi(Paul Yi) 2008年03月26日 10:17:06
其他使用者只能等解鎖後才能對這個表進行更新或刪除
xxxx 2008年03月26日 10:18:43
流程:
1。開始事務
2。select * from table for update
3。查詢所要的記錄是否存在
4。根據第3步的結果進行插入或更新
5。提交事務
xxxx 2008年03月26日 10:19:09
這樣併發操作會等在第2步中,不會因為併發而影相第3步的判斷
Paul Yi(Paul Yi) 2008年03月26日 10:20:33
對 如果2步併發時不想讓別人等待立即發出資訊的話可以加上 select * from table for update nowait
併發使用者看到的是資源正忙
xxxx 2008年03月26日 10:23:21
THX
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-217914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 樂觀鎖與悲觀鎖及應用舉例
- 關於樂觀鎖與悲觀鎖的實際應用
- SSM (十五) 樂觀鎖與悲觀鎖的實際應用SSM
- 樂觀鎖和悲觀鎖在kubernetes中的應用
- SQLServer樂觀鎖定和悲觀鎖定例項SQLServer
- 面試官:你說說互斥鎖、自旋鎖、讀寫鎖、悲觀鎖、樂觀鎖的應用場景面試
- laravel樂觀鎖和悲觀鎖Laravel
- mysql悲觀鎖以樂觀鎖MySql
- SQL SERVER樂觀鎖定和悲觀鎖定使用例項SQLServer
- Java中的鎖之樂觀鎖與悲觀鎖Java
- MySQL鎖(樂觀鎖、悲觀鎖、多粒度鎖)MySql
- java-樂觀鎖與悲觀鎖Java
- MybatisPlus - [03] 樂觀鎖&悲觀鎖MyBatis
- Redis的事務、樂觀鎖和悲觀鎖Redis
- MySQL 悲觀鎖與樂觀鎖的詳解MySql
- MySQL樂觀鎖和悲觀鎖介紹MySql
- 資料庫中的悲觀鎖和樂觀鎖資料庫
- JPA和Hibernate的樂觀鎖與悲觀鎖
- Java 中的悲觀鎖和樂觀鎖的實現Java
- 面試必備之悲觀鎖與樂觀鎖面試
- 面試必備之樂觀鎖與悲觀鎖面試
- Java彌散系列 - 樂觀鎖與悲觀鎖Java
- 悲觀鎖與樂觀鎖的實現(詳情圖解)圖解
- 面試必備的資料庫悲觀鎖與樂觀鎖面試資料庫
- 小議“悲觀鎖和樂觀鎖”的原理、場景、示例
- 樂觀鎖和悲觀鎖策略的區別與實現
- 利用MySQL中的樂觀鎖和悲觀鎖實現分散式鎖MySql分散式
- Java多執行緒的悲觀鎖與樂觀鎖及各自適用場景Java執行緒
- 【鎖機制】共享鎖、排它鎖、悲觀鎖、樂觀鎖、死鎖等等
- 在MongoDB中使用悲觀鎖MongoDB
- oracle-- tom悲觀鎖演示Oracle
- 悲觀的併發策略——synchronized互斥鎖synchronized
- synchronized 作為悲觀鎖,鎖住了什麼?synchronized
- 解鎖你的資料庫:JPA和Hibernate的樂觀鎖與悲觀鎖資料庫
- Java開發技巧——併發控制中的樂觀鎖與悲觀鎖Java
- Mybatis Generator Plugin悲觀鎖實現MyBatisPlugin
- [轉帖]SQL Server 鎖機制 悲觀鎖 樂觀鎖 實測解析SQLServer
- 【每日鮮蘑】從資料庫看樂觀鎖、悲觀鎖資料庫