鎖定的範圍不一樣,行級鎖鎖定的是相關的行,別人仍然可以操作該錶的其他行;而表級鎖則鎖定整個表,其他人對該錶的訪問會受到更多的限制。
所以,二者的主要區別就是鎖的粒度不一樣,帶來的結果及時併發能力的不同。鎖的粒度越細,併發性越好。
行級鎖,一般是指排它鎖,即被鎖定行不可進行修改,刪除,只可以被其他會話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 也支援表級鎖,但預設情況下是...