mysql默認的引擎是InnoDB

有如下表:

表中的數據有:

開啟事務(begin),執行更新語句,將'user_name'全部更新為'woxbwo',但不提交(commit)事務:

在事務內查詢:

事物外查詢,新開一個窗口查詢:

可以發現,事務外查到的數據author沒有發生改變
提交事務:

順便測試MySQL插入是表級鎖還是行級鎖
開啟事務,插入數據,但不提交事務

查看事務內數據

查看事務外數據

在另外一個窗口,再次插入一條數據,並查看數據;

再查看事務內數據:

提交事務,並查看。

上述測試過程可以看出,mysql使用innodb引擎時,插入數據(insert)沒有鎖
測試delete和update過程
查看數據:

開啟事務,刪除id=1的行 但不提交數據:

在另外一個窗口也刪除id=1的行,會發生生么樣的情況呢?

會發現處於等待狀態
那么在這種情況下,我們是否能夠刪除其他的行呢,我們再開一個窗口刪除id=2的行,試試

照樣能刪除,說明刪除沒使用表級鎖。
我們提交事務發現:


綜上所屬:delete是使用行級鎖的,update也是實現行級鎖的。同理可測;
