MYSQL--鎖機制*

一.對鎖機制的大概介紹:

? ? ? ? 1.大概的來說,MYSQL當中的鎖實際上就是合理的管理多個服務器對于同一個共享資源的使用,是計算機協調多個進程或者是線程并發訪問某一資源的機制(避免爭搶資源的現象發生)

? ? ? ? 2.在數據庫當中,數據是一種可以供許多的用戶進行共享使用的資源,如何保證數據并發訪問的一致性,有效性是所有的數據庫必須進行解決的一個關鍵問題,鎖沖突也是影響數據庫并發訪問性能的一個重要因素.從這個角度來講,鎖對于數據庫顯得非常的重要,相同的,也更加的復雜

二.鎖的大概分類

? ? ? ? 1.從對于數據操作的力度區分:

1>表鎖:操作的時候會對于整個表進行鎖定

2>行鎖,操作時,會鎖定操作的行

? ? ? ? 2.從對于數據操作的類型進行區分:

1>讀鎖(共享鎖) :針對于同一份的數據,多個的讀取操作可以同時的進行,并且并不會相互的有所影響(前提是并沒有任何的更改數據操作)

2>寫鎖(排它鎖) :在當前操作尚未完成之前,會阻斷其他的讀鎖以及相應的寫鎖

三.MYSQL的鎖機制:

? ? ? ? 相比于其他的鎖,MYSQL的鎖機制比較的簡單,最顯著的特征就是針對不同的存儲引擎有不同的鎖機制

四:不同存儲引擎的操作演示:

? ? ? ? 1>MYISAM存儲引擎:

? ? ? ? 因為MYISAM僅僅只支持表鎖,所以僅僅只講解表鎖得相關操作

? ? ? ? 1.讀鎖:(lock table tablename read)

? ? ? ? ? ? ? ? 進行讀鎖之后,發現兩個都能夠對這個表進行相應的數據查詢,但是無法進行切換到其他的表以及進行相應的數據添加和修改.同時的兩個都能夠對于同一張表進行讀鎖的操作,不相沖突

? ? ? ? ? ? ? ? 一旦加了讀鎖,就必須查看當前的表,不能對于其他的表進行操作,除非解除讀鎖(unlock tables)

? ? ? ? 2.寫鎖(lock table test1 write):

? ? ? ? 在左邊加入了寫鎖之后,左邊可以正常的進行查詢當前鎖表,并且進行一些修改,但是右邊無法對其進行任何得操作,比如圖中得查詢操作,也會因為被上了寫鎖而讓右邊對其得查詢被掛起,無法進行下去!

? ? ? ? 通俗得說,寫鎖就是占用了一個其他任何人都無法進入得空間,僅僅只有當事人可以對其進行一定得操作,其他人都不能,解除寫鎖之后方可.并且,寫鎖僅僅只能一個服務器單獨得針對一個表,而不能像讀鎖一樣可以多個都進行添加鎖

? ? ? ? 2>InnoDB存儲引擎:

? ? ? ? InnoDB的表鎖跟MYISAM的大致上都是一樣的,所以就不再概述,在這里主要講解行鎖的相關操作:

? ? ? ? 同時為了方便觀察,建議關閉事務的自動提交!

? ? ? ? 1.行鎖的特點:

????????偏向于INNODB,開銷比較的大,并且加鎖比較的慢,鎖的定位力度最小,但是,因為是對與一行一行的進行行鎖,那么發生鎖沖突的概率也是比較低的,并發度也是最高的(同時進行操作)

? ? ? ? 1.共享鎖(又稱為讀鎖)? 多個事務可以對于同一列進行訪問數據,但是僅僅只能夠進行讀取,而不能夠進行相應的修改數據

? ? ? ? 2.排它鎖(又稱為寫鎖)? 不能夠與其他的鎖并存,一個事務獲得了一行數據的排他鎖,那么其他的事務就不能夠對其再次的進行獲取,包括了讀取以及修改,除非該鎖打開

? ? ? ? 如圖,當沒有提交事務之前,如果再對于同一個行的數據再次進行修改的時候就會被掛起,從而無法修改,但是!可以對于除了這一行的其他行進行修改!這就是行鎖對于表鎖的一大不同之處

? ? ? ? TIPS:

? ? ? ? 對于DQL的相關操作:update insert delete操作,INNODB都會自動的進行添加排他鎖

? ? ? ? 對于普通的查詢操作,并不會添加任何的鎖

????????????????????????????????????????????????????????????????OVER!感謝觀看

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712303.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712303.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712303.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟考筆記--軟件開發模型

軟件開發模型給出了軟件開發活動各個階段之間的關系,它是軟件開發過程的概括,是軟件工程的重要內容。軟件開發模型為軟件工程管理提供了里程碑和進度表,為軟件開發過程提供了原則和方法。 一.軟件開發模型概述 軟件開發模型可分為三種類型&…

第十一屆藍橋杯省賽第一場C++ A組 / B組《整數拼接》(c++)

1.題目說明 給定一個長度為 n 的數組 A1,A2,???,An。 你可以從中選出兩個數 Ai 和 Aj(i 不等于 j),然后將 Ai 和 Aj 一前一后拼成一個新的整數。 例如 12 和 345 可以拼成 12345 或 34512。 注意交換 Ai 和 Aj 的順序總是被視為 2 種拼法,即便是 …

考研倒計時半年:如何高效安排學習計劃?

距離考研還有半年的時間,這是一個既緊張又充滿希望的階段。如何利用好這段時間,制定一個高效的學習計劃,成為了每位考生關注的焦點。下面,我將為大家提供一些關于政治、英語和專業課的學習建議,希望能對大家有所幫助。…

曲線的凹凸性與拐點【高數筆記】

1.什么是曲線的凹凸性 2.什么是曲線的拐點 3.拐點的特征 4.拐點與駐點有什么不同 5.拐點的表示方法與駐點有什么不一樣 6.拐點與凹凸區間怎么求

力扣121題: 買賣股票的最佳時機

【題目描述】 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子賣出該股票。設計一個算法來計算你所能獲取的最大利潤。返回你可以從這筆交易中獲取的最…

Mathtype安裝時word啟動顯示“文件未找到:MathPage.WLL”

背景 由于老板布置的臨時工作,需要安裝Mathtype,但嘗試了3個不同的版本后(每次都卸載干凈了),均未能成功安裝,出現的報錯3個版本各不相同: ①解壓安裝過程中失敗(這個版本不再嘗試…

GoFrame:如何簡單地搭建一個簡單地微服務

一切資料來源于GoFrame官網, 感興趣的, 可以直接去官網查閱相關資料。 首先下載框架工具, 下載地址:https://github.com/gogf/gf/releases 然后進入你想要放置的項目文件夾, 執行命令行 gf init {project_name} #project_name為你的項目名 執行完后項目結構如圖所示 然…

同等學力申碩專業介紹——教育學碩士

同等學力申碩的專業很多。 目前有十三大門類,分別是醫學、法學、管理學、工學、教育學、經濟學、藝術學、文學、歷史學、理學、哲學、農學、軍事學等,每個大門類中都有很多的細分專業。 今天為大家介紹同等學力申碩專業——教育學。 專業介紹 教育學該…

基于java+springboot動物檢疫信息管理系統設計和實現

基于java SSM springboot動物檢疫信息管理系統設計和實現 博主介紹:多年java開發經驗,專注Java開發、定制、遠程、文檔編寫指導等,csdn特邀作者、專注于Java技術領域 作者主頁 央順技術團隊 Java畢設項目精品實戰案例《1000套》 歡迎點贊 收藏 ?留言 文…

【寸鐵的刷題筆記】樹、dfs、bfs、回溯、遞歸(三)

【寸鐵的刷題筆記】樹、dfs、bfs、回溯、遞歸(三) 大家好 我是寸鐵👊 金三銀四,樹、dfs、bfs、回溯、遞歸是必考的知識點? 快跟著寸鐵刷起來!面試順利上岸👋 喜歡的小伙伴可以點點關注 💝 530. 二叉搜索樹的最小絕對差…

考研政治這樣復習更高效

政治復習是考研備考中的重要一環,需要考生制定科學的復習計劃,注重知識點的掌握和解題技巧的提升。以下是一些政治復習的建議: 梳理知識框架:首先,需要梳理政治學科的知識框架,了解各個章節之間的內在聯系…

【Vue3】自定義 Vue3 插件(全局實現頁面加載動畫)

// main.ts import { createApp } from vue import App from ./App.vue import Loading from "./components/Loading/index.ts";const app createApp(App) type Lod {show: () > void,hide: () > void } //編寫ts loading 聲明文件放置報錯 和 智能提示 decl…

python實現常見一元隨機變量的概率分布

一. 隨機變量 隨機變量是一個從樣本空間 Ω \Omega Ω到實數空間 R R R的函數,比如隨機變量 X X X可以表示投骰子的點數。隨機變量一般可以分為兩類: 離散型隨機變量:隨機變量的取值為有限個。連續型隨機變量:隨機變量的取值是連…

Redis 群集部署

1.關系型數據庫 關系型數據庫是一個結構化的數據庫,創建在關系模型基礎上,-般面向記錄。它借助于集合代數等數學概念和方法來處理數據庫中的數據。關系模型指二維表格模型,因而一個關系型數據庫就是由二維表及其之間的聯系組成的一個數據組織。現實世界中…

python及編程范式

編程范式 編程范式是一種基于特定的理論和原則來指導程序設計和開發風格的模型。它定義了編程語言的結構、風格、元素以及編寫程序時應遵循的規則。不同的編程范式提供了不同視角來解決問題,影響著代碼組織方式、執行流程以及如何表達程序邏輯。 OOP和FP 函數式編…

vue3監聽input保留兩位小數點

監聽input輸入框校驗 再次記錄下&#xff0c;這里沒封裝&#xff0c;僅演示~ 保留2位小數 只能輸入數字和兩位小數 <el-inputv-model"form.amount"oninput"valuevalue.replace(/[^0-9.]/g,).replace(/\.{2,}/g,.).replace(/^(\-)*(\d)\.(\d\d).*$/,$1$2.$3…

(2024,MixLoRA,任務干擾,獨立因子選擇,條件因子選擇)使用 LoRA 的條件混合進行多模態指令調優

Multimodal Instruction Tuning with Conditional Mixture of LoRA 公和眾和號&#xff1a;EDPJ&#xff08;進 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 進 V 交流群&#xff09; 目錄 0. 摘要 3. 任務干擾在多模態指令調優中的 LoRA 應用 3.1 背景&am…

小甲魚Python07 函數初級

一、創建和調用函數 pass語句表示一個空的代碼塊&#xff0c;我們經常先寫好函數&#xff0c;pass占一個坑&#xff0c;等規劃好之后再來填坑。 函數也是可以指定參數的&#xff0c;我們會把參數傳進去用來替代形參。 在Python里如果想要返回值&#xff0c;不需要指定函數的返…

仿牛客網項目---顯示評論和添加評論功能的實現

這篇文章&#xff0c;我來介紹一下我的項目中的另外一個功能&#xff1a;顯示評論和添加評論。 其實這兩個功能都不怎么重要&#xff0c;我感覺最重要的應該是用戶注冊登錄功能&#xff0c;這個也了解一下&#xff0c;知道這么一回事兒就好。 首先設計DAO層。 Mapper public …

python實現AES加密解密

1. 前言 AES是一種對稱加密&#xff0c;所謂對稱加密就是加密與解密使用的秘鑰是一個。 之前寫過一片關于python AES加密解密的文章&#xff0c;但是這里面細節實在很多&#xff0c;這次我從 參數類型、加密模式、編碼模式、補全模式、等等方面 系統的說明如何使用AES加密解密…