1. 程式人生 > >mysql 實驗論證 innodb表級鎖與行級鎖

mysql 實驗論證 innodb表級鎖與行級鎖

innodb 的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.

表鎖演示(無索引)

操作1

操作2

處於等待狀態....

再回到操作1 commit以後,操作2就出來結果了(鎖定了8秒,過了6秒左右才去session1提交)。

實驗結果是:

我在操作1的for update 操作看似只鎖定ID為2的行其實鎖定了全表,以至於後面操作2的對ID為1的行update 需要等待操作1鎖的釋放。

行鎖演示(索引為ID)

增加索引:

 

實驗結果:

這次的鎖定是鎖定的行,所以沒有被鎖定的行(ID不為2的行)可以進