小編給大家分享一下MySQL表鎖和行鎖有哪些區(qū)別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯公司長期為上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為嘉黎企業(yè)提供專業(yè)的成都做網站、成都網站設計,嘉黎網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
Mysql有很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖;這些鎖統稱為悲觀鎖(Pessimistic Lock)。
鎖是計算機協調多個進程或線程并發(fā)訪問某一資源的機制。在數據庫中,除傳統的 計算資源(如CPU、RAM、I/O等)的爭用以外,數據也是一種供許多用戶共享的資源。如何保證數據并發(fā)訪問的一致性、有效性是所有數據庫必須解決的一 個問題,鎖沖突也是影響數據庫并發(fā)訪問性能的一個重要因素。從這個角度來說,鎖對數據庫而言顯得尤其重要,也更加復雜。
mysql中表鎖和行鎖的區(qū)別
行鎖
特點:鎖的粒度小,發(fā)生鎖沖突的概率低、處理并發(fā)的能力強;開銷大、加鎖慢、會出現死鎖
加鎖的方式:自動加鎖。對于UPDATE、DELETE和INSERT語句,InnoDB會自動給涉及數據集加排他鎖;對于普通SELECT語句,InnoDB不會加任何鎖。
表鎖
特點:開銷小、加鎖快、無死鎖;鎖粒度大,發(fā)生鎖沖突的概率高,高并發(fā)下性能低
加鎖的方式:自動加鎖。查詢操作(SELECT),會自動給涉及的所有表加讀鎖,更新操作(UPDATE、DELETE、INSERT),會自動給涉及的表加寫鎖。
看完了這篇文章,相信你對mysql表鎖和行鎖有哪些區(qū)別有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道,感謝各位的閱讀!