Java面試:說一下Mysql事務特性,表鎖和行鎖

1.事務的四大特性
    原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、
        持久性(Durability)。
        
    原子性:就是操作的純粹性,一個事務中的所有操作成功或失敗。即事務操作的純粹性,最小單元的完整性。
    一致性:事務操作預期和結果保持一致。
    隔離性:就是一種防止事務污染的一種機制。
    持久性:數據一旦提交,寫入磁盤。


鎖的作用:資源競爭、防止污染(數據鎖,程序鎖)
事務的隔離級別作用:避免數據、程序、變量出現一定的污染現象。

2.mysql的行鎖和表鎖

例如我們的表是這樣的(id是主鍵索引),模擬現象:非索引更新會由表鎖升級爲行鎖

     分別執行

1.執行更新操作,事務未提交,

set autocommit=0;
update t_user t set password='789' where t.username='2'

2.測試其他事務性操作,發現,一直處於等待狀態,說表發生了表鎖,


insert into t_user (id,username,password) VALUES('12','123','456')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章