我知道這聽起來很奇怪,但顯然我的一列被鎖定。在innodb中鎖定列?
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;
即使在幾個小時內第一個也不會跑完,而第二個完成順利。唯一的區別是2個查詢之間的type_id。
有點背景的,第一條語句搞砸了這之前,我不得不手動殺死。
在此先感謝您的幫助 - 我有一個緊急的數據工作,完成任務,而這個問題是讓我瘋
只是跑了它 - 看起來非常好。感謝您閱讀innodb的限制! – 2010-05-17 03:03:36
Innodb的具有行級鎖定,這意味着如果10 1十億行正在更新,您可以訪問除10 MyISAM的所有行具有表級鎖,如果你更新,這意味着1個十億行,你會不會是10能夠訪問100億行中的任何一行,直到更新完成。 我已經完全停止使用myisam並且從未後悔過。 – John 2018-01-06 06:01:10