innodb 的行鎖是在有索引的狀況下,沒有索引的表是鎖定全表的.session
表鎖演示(無索引)spa
操做13d
操做2blog
處於等待狀態....索引
再回到操做1 commit之後,操做2就出來結果了(鎖定了8秒,過了6秒左右纔去session1提交)。it
實驗結果是:io
我在操做1的for update 操做看似只鎖定ID爲2的行其實鎖定了全表,以致於後面操做2的對ID爲1的行update 須要等待操做1鎖的釋放。 innodb
行鎖演示(索引爲ID) date
增長索引:im
實驗結果:
此次的鎖定是鎖定的行,因此沒有被鎖定的行(ID不爲2的行)能夠進行update..