行級鎖和表級鎖

2021-06-05 13:17:01 字數 484 閱讀 5848

鎖定的範圍不一樣,行級鎖鎖定的是相關的行,別人仍然可以操作該錶的其他行;而表級鎖則鎖定整個表,其他人對該錶的訪問會受到更多的限制。

所以,二者的主要區別就是鎖的粒度不一樣,帶來的結果及時併發能力的不同。鎖的粒度越細,併發性越好。 

行級鎖,一般是指排它鎖,即被鎖定行不可進行修改,刪除,只可以被其他會話select。行級鎖之前需要先加表結構共享鎖。

表級鎖,一般是指表結構共享鎖鎖,是不可對該錶執行ddl操作,但對dml操作都不限制。

根據鎖的型別分,共有6種

lmode

1、null,可以某些情況下,如分布式資料庫的查詢會產生此鎖。

2、ss,表結構共享鎖

3、sx,表結構共享鎖+被操作的記錄的排它鎖

4、s, 表結構共享鎖+所有記錄共享鎖

5、srx 表結構共享鎖+所有記錄排它鎖

6、x 表結構排它鎖+所有記錄排它鎖

myisam 只支援到表級鎖,innodb支援到行級鎖

mysql行級鎖 頁級鎖和表級鎖

mysql的鎖是由具體的儲存引擎實現的。所以像mysql的預設引擎myisam和第三方外掛程式引擎 innodb的鎖實現機制是有區別的。1.表級鎖定 table level 表級別的鎖定是mysql各儲存引擎中最大顆粒度的鎖定機制。該鎖定機制最大的特點是實現邏輯非常簡單,帶來的系統負面影響最小。所以...

MySQL行級鎖和表級鎖

鎖定用於確保事務完整性和資料庫一致性。鎖定可以防止使用者讀取其他使用者正在更改的資料,並防止多個使用者同時更改相同的資料。如果不使用鎖定,資料庫中的資料可能在邏輯上變得不正確,而針對這些資料進行查詢可能會產生想不到的結果。在電腦科學中,鎖是在執行多執行緒時用於強行限制資源訪問的同步機制,即用於在併發...

MySQL表級鎖和行級鎖

一 概述 相對其他資料庫而言,mysql的鎖機制比較簡單,其最顯著的特點是不同的儲存引擎支援不同的鎖機制。比如,myisam和memory儲存引擎採用的是表級鎖 table level locking innodb儲存引擎既支援行級鎖 row level locking 也支援表級鎖,但預設情況下是...