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')

 

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