国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL鎖及類別有哪些

2024-07-24 12:33:31
字體:
來源:轉載
供稿:網友
  今天小編給大家分享一下MySQL鎖及分類有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
 
  在高并發場景下,不考慮其他中間件的情況下,數據庫會存在以下場景:
 
  讀讀:不存在任何問題,也不需要并發控制。
  讀寫:有線程安全問題,可能會造成事務隔離性問題,可能遇到臟讀,幻讀,不可重復讀。
  寫寫:有線程安全問題,可能會存在更新丟失問題,比如第一類更新丟失,第二類更新丟失。
  針對以上問題,SQL 標準規定不同隔離級別下可能發生的問題不一樣:
 
  如果我們的一些業務場景不允許讀取記錄的舊版本,而是每次都必須去讀取記錄的最新版本,比方在銀行存款的事務中,你需要先把賬戶的余額讀出來,然后將其加上本次存款的數額,最后再寫到數據庫中。在將賬戶余額讀取出來后,就不想讓別的事務再訪問該余額,直到本次存款事務執行完成,其他事務才可以訪問賬戶的余額。這樣在讀取記錄的時候也就需要對其進行加鎖操作,這樣也就意味著讀操作和寫操作也像寫-寫操作那樣排隊執行。
 
  對于臟讀,是因為當前事務讀取了另一個未提交事務寫的一條記錄,但如果另一個事務在寫記錄的時候就給這條記錄加鎖,那么當前事務就無法繼續讀取該記錄了,所以也就不會有臟讀問題的產生了。
 
  對于不可重復讀,是因為當前事務先讀取一條記錄,另外一個事務對該記錄做了改動之后并提交之后,當前事務再次讀取時會獲得不同的值,如果在當前事務讀取記錄時就給該記錄加鎖,那么另一個事務就無法修改該記錄,自然也不會發生不可重復讀了。
 
  對于幻讀,是因為當前事務讀取了一個范圍的記錄,然后另外的事務向該范圍內插入了新記錄,當前事務再次讀取該范圍的記錄時發現了新插入的新記錄,我們把新插入的那些記錄稱之為幻影記錄。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和龙市| 泸溪县| 大厂| 枣强县| 田阳县| 崇仁县| 巩留县| 区。| 大安市| 东兴市| 上蔡县| 龙陵县| 板桥市| 辛集市| 宁城县| 永清县| 若尔盖县| 绍兴县| 新民市| 卓尼县| 响水县| 施甸县| 都江堰市| 南漳县| 景东| 沙湾县| 花莲县| 玛纳斯县| 遂昌县| 农安县| 察雅县| 五家渠市| 延安市| 浦北县| 永吉县| 西林县| 安仁县| 祁连县| 江城| 察哈| 温州市|