MYSQL中的鎖必知必會
Mysql中的三種鎖:
行級鎖 表級鎖 頁面鎖
首先來看Mysql中四大儲存引擎的鎖機制
MYISAM和Memory只採用了一種鎖那就是表級鎖
BDB儲存引擎支援表級鎖和頁級鎖,預設是頁級鎖。
InnoDB儲存引擎支援表級鎖和行級鎖,預設是行級鎖。
速記:四大引擎都支援表級鎖,有兩個只有一種鎖,剩下的都有兩種鎖且組合不相同,且預設的都不是表級鎖,記住InnoDB預設是行級鎖,自然而然剩下的BDB就能快速背出是行級鎖。
下面詳細來說這三大鎖機制。
行級鎖:
行級鎖是 MySQL 中鎖定粒度最細的一種鎖,表示只針對當前操作的行進行加鎖。行級鎖分為共享鎖和排他鎖。
特點:加鎖開銷大,會出現死鎖,鎖定粒度最小,發生鎖衝突的概率最低,併發度最高。
頁級鎖:
頁級鎖是 MySQL 中鎖定粒度介於行級鎖和表級鎖中間的一種鎖。採取了折衷的頁級鎖,一次鎖定相鄰的一組記錄。BDB 支援頁級鎖。
特點:開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界於表鎖和行鎖之間,併發度一般。
表級鎖:
表級鎖是 MySQL 中鎖定粒度最大的一種鎖,表示對當前操作的整張表加鎖,它實現簡單,資源消耗較少,被大部分 MySQL 引擎支援。表級鎖定分為表共享讀鎖(共享鎖)與表獨佔寫鎖(排他鎖)。
開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發出鎖衝突的概率最高,併發度最低。
相關問題,來源網路:
相關文章
- MySQL 必知必會MySql
- 【必知必會的MySQL知識】①初探MySQLMySql
- 【必知必會的MySQL知識】②使用MySQLMySql
- mysql必知必會筆記MySql筆記
- Mysql必知必會練習MySql
- 01-mysql必知必會MySql
- 【必知必會的MySQL知識】④DCL語言MySql
- 【必知必會的MySQL知識】⑤DQL語言MySql
- 【必知必會的MySQL知識】③DML語言MySql
- 【必知必會的MySQL知識】mysql5.7安裝教程MySql
- 《MySQL必知必會》萬用字元 ( like , % , _ ,)MySql字元
- MySQL必知必會》正規表示式MySql
- MySQL必知必會(1-12章)MySql
- 《Mysql必知必會》讀書筆記MySql筆記
- MySQL必知必會詳細總結MySql
- MySQL必知必會筆記——查詢的基礎知識MySql筆記
- 《MySQL 必知必會》C25-C28MySql
- Linux必會必知Linux
- git必會必知Git
- Redis 必知必會Redis
- ThreadLocal必知必會thread
- Activity 必知必會
- JSON 必知必會JSON
- HashMap必知必會HashMap
- 12.MySQL必知必會之分組資料MySql
- HTTP 必知必會的那些HTTP
- notion database 必知必會Database
- Linux shell必知必會Linux
- Linux 程式必知必會Linux
- 必知必會Java命令-jpsJava
- Redis 必知必會之 APIRedisAPI
- 常用技術必知必會
- 對於MySQL你必須要了解的鎖知識MySql
- MySQL 必知概念MySql
- 必知必會的8個Python列表技巧Python
- 前端必知必會--操作URL的黑科技前端
- 優秀程式碼的必知必會(一)?
- Java必知必會之註解Java