mysql 原理 常規鎖

2022-03-20 17:56:37 字數 647 閱讀 6618

一 模式 rr模式

二 mysql鎖相關場景

1 有間隙的地方就可能有間隙鎖,並非只有輔助索引的場景下才會存在gap lock,典型場景 id主鍵的範圍查詢

2 varchar的範圍鎖定原理和int類似,不過是按照字母排列順序

3 rc模式同樣可能存在間隙鎖 典型場景 外來鍵

三 間隙鎖加鎖順序

查詢方式

1 等值查詢,如果是唯一索引,next-key lock會退化為行鎖,如果不是唯一索引,需要訪問到第乙個不滿足條件的值,此時next-key lock會退化為間隙鎖;

2 範圍查詢:無論是否是唯一索引,範圍查詢都需要訪問到不滿足條件的第乙個值為止

四 索引型別

非唯一性索引 會鎖定條件範圍上下不符合條件的記錄範圍,左開右閉

五 間隙鎖針對操作

1 針對鎖定範圍的插入操作

2 針對鎖定範圍的行的更新和刪除,常見於不符合條件記錄的邊界鎖定

六 總結

1 採用主鍵和唯一性索引進行操作

2 採用limit進行操作,減少範圍鎖定的操作

3 對於order by desc+範圍查詢的操作,會選擇<=範圍=>掃瞄方式,要尤其注意

4對於 in 裡面的值  1 是根據每個值掃瞄逐漸加鎖

2 和in內部的值的順序無關

mysql 常規操作

mysql mysql是乙個開源的資料庫,可以實現資料庫的基本功能,常用的語句 檢視資料庫 show databases 進入資料庫 use databasename 新建資料庫 create database 新建表 create table tablename 欄位名 字段結構 長度區別 int...

mysql常規資料操作

1 獲取資料表中字段的個數 select count from information schema.columns where table schema shu j and table name car info detail 201801 2 更新字段屬性 自動更新最後處理時間 alter ta...

回顧 MySQL鎖原理的初步理解

1 一般myisam引擎會加表鎖,進行查詢的時候,會預設加個表共享鎖,也就是表讀鎖,這個時候別的資料庫連線只能到該表來查資料,不能寫資料 在進行寫操作的時候,myisam引擎會加個表的獨佔鎖,也就是表寫鎖,別的連線不能讀也不能寫 myisam這樣的頁級鎖,一般很少用了。2 innodb引擎一般使用行...