<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                1. 行鎖 給某一行記錄上鎖,目前只有InnoDB引擎支持行鎖 2. 表鎖 給一個整張表上鎖 3. 樂觀鎖 本身很樂觀,認為在操作數據時(更新操作),默認別的線程并不會操作數據發生沖突,所以在每次操作時并不會上鎖,只是在更新時判斷別的線程在此期間是否有做修改,如果有修改該操作就無效 通常實現是這樣的:在表中的數據進行操作時(更新),先給數據行加一個版本(version)字段,每操作一次,將那條記錄的版本號加1。也就是先查詢出那條記錄,獲取出version字段,如果要對那條記錄進行操作(更新),則先判斷此刻version的值是否與剛剛查詢出來時的version的值相等,如果相等,則說明這段期間,沒有其他程序對其進行操作,則可以執行更新,將version字段的值加1;如果更新時發現此刻的version值與剛剛獲取出來的version的值不相等,則說明這段期間已經有其他程序對其進行操作了,則不進行更新操作。 ~~~ #1.查詢出商品信息 select (status,status,version) from t_goods where id=#{id} #2.修改商品status為2 set status=2,version=version+1 where id=#{id} and version=#{version}; ~~~ 4. 悲觀鎖 (大多數情況下依靠數據庫的鎖機制實現,開銷比較大) 本身很悲觀,認為在操作數據時總會發生沖突,所以在每次操作時都需要給相應的數據加上鎖來避免沖突,所以悲觀鎖比較耗時,另外與樂觀鎖不同悲觀鎖是由數據庫自己實現的,所以要用的時候可以直接調用數據庫的相關語句. 共享鎖和排他鎖是悲觀鎖的不同實現,但都屬于悲觀鎖 * 共享鎖(lock in share mode) 共享鎖又稱讀鎖,一個線程給數據加上共享鎖之后,其他線程只能讀數據不能修改數據 * 排他鎖(for update) 排他鎖又稱寫鎖,跟共享鎖的區別是,其他線程既不能讀也不能寫數據 作者:小新是個程序媛 鏈接:https://www.jianshu.com/p/ddfa9cd5f605 來源:簡書 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看