mysql事务特性、隔离级别、传播行为

1,事务特性

原子性)一个事务要么全部执行,要么不执行。

隔离性)各事务间互不干扰。

一致性)事务的开始与结束状态必须保持一致。即对于同一个事务,不管执行多少次,如果开始状态相同,结束状态也相同。

持久性)事务的写入操作具有永久性,即使系统发生故障。

2,事务隔离级别

读未提交)最低级别,没有限制,一个事务未提交的数据另一个事务可见。

原理:读操作不加锁,更新操作加行级共享锁(即读锁)。

理解:在读锁下,数据任何时候可读,因此会读取到另一事务更新而未提交的数据。

缺点:脏读、不可重复读、幻读

读已提交)一个事务可以读取另一个事务已经提交的数据,未提交的数据不可以。

原理:读操作加行级共享锁(读锁),读完立即释放读锁,更新操作加行级排他锁(写锁)。

理解:一个事务在读取时,读取完毕立即释放读锁,此时另一个事务可以加写锁更新数据,更新提交后释放写锁,之前的事务再次读取时读取到更新后的数据。

缺点:解决脏读,存在不可重复读、幻读

可重复读)读操作加行级共享锁(读锁),整个事务完成后才释放读锁,更新操作加行级排他锁(写锁)

原理:与上一个比较,读取事务中即使有多个读取操作,因为读锁针对于整个事务,所以读取的数据是一致的。

缺点:解决不可重复读,还存在幻读(因为没有对整个表加锁,2次读取结果因为插入等不一致)

序列化)读取时加表级共享锁,更新时加表级排他锁。

缺点:解决了幻读、隔离性好,并发性差。

 

返回每一行多列数据中的最大值

例如表

SELECT id,MAX(c1) FROM 
(SELECT id,c1 FROM test UNION SELECT id,c2 FROM test UNION SELECT id,c3 FROM test)col 
GROUP BY id;

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值