mysql行鎖和表鎖

2021-07-28 12:01:47 字數 532 閱讀 9044

myisam和inner db都支援表鎖,分為讀鎖和寫鎖

表共享讀鎖(table read lock)和表獨佔寫鎖(table write lock)。就是說對myisam表進行讀操作時,它不會阻塞其他使用者對同一表的讀請求,但會阻塞 對同一表的寫操作;而對myisam表的寫操作,則會阻塞其他使用者對同一表的讀和寫操作。

inner db支援行級鎖,是mysql中最小粒度的鎖,也是真正的事物鎖。分為

1)共享鎖凡是select取出來的行資料,只有該回話才可以修改,直至commit之後。其他的會話才能修改,但是過程中其他會話可以讀。

( select * from table_name where ......lock in share mode)

2)排他鎖:開啟排他鎖其他會話依然不能修改資料,但是可以普通的讀,另外乙個會話也想加鎖則會產生衝突。(select * from table_name where.....for update)

innodb行鎖是通過給索引項加鎖來實現的,即只有通過索引條件檢索資料,innodb才使用行級鎖,否則將使用表鎖!

mysql行鎖表鎖區別 mysql表鎖和行鎖區別

一 表鎖 特點 偏向myisam儲存引擎,開銷小,加鎖快 無死鎖 鎖定粒度大,發生鎖衝突的概率最高,併發度最低。我們在編輯表,或者執行修改表的事情了語句的時候,一般都會給表加上表鎖,可以避免一些不同步的事情出現,表鎖分為兩種,一種是讀鎖,一種是寫鎖。我們可以手動給表加上這兩種鎖,語句是 lock t...

mysql行鎖和表鎖

在呼叫儲存過程中,就會涉及到表鎖,行鎖這一概念 所謂區別 有索引的時候就是行鎖,沒有索引的時候就是表索。innodb 的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.表鎖演示 無索引 session1 mysql set autocommit 0 mysql select from innodb...

mysql行鎖和表鎖

在呼叫儲存過程中,就會涉及到表鎖,行鎖這一概念 所謂區別 有索引的時候就是行鎖,沒有索引的時候就是表索。innodb 的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.表鎖演示 無索引 session1 mysql set autocommit 0 mysql select from innodb...