Mysql

innodb中的列鎖定?

  • May 17, 2010

我知道這聽起來很奇怪,但顯然我的一個專欄被鎖定了。

select * from table where type_id = 1 and updated_at < '2010-03-14' limit 1;

select * from table where type_id = 3 and updated_at < '2010-03-14' limit 10;

第一個不會完成執行,而第二個則順利完成。唯一的區別是 type_id

提前感謝您的幫助 - 我有一項緊急數據工作要完成,這個問題讓我發瘋

您為什麼不查看SHOW FULL PROCESSLIST並查看正在訪問系統的其他執行緒,並殺死可能正在使用該行的執行緒。

InnoDB 具有行級鎖定,而不是列級鎖定。您更改 type_id 的事實意味著它選擇了不同的行,並且該行被鎖定。

引用自:https://serverfault.com/questions/142463