Javaweb学习记录06

事务

事务的特性
	ACID
	(atom)原子性:事务里面的操作单元不可切割,要么全部成功,要么全部失败
	(consistency)一致性:事务执行前后,业务状态和其他业务状态保持一致.
	(insulation)隔离性:一个事务执行的时候最好不要受到其他事务的影响
	(duration)持久性:一旦事务提交或者回滚.这个状态都要持久化到数据库中
不考虑隔离性会出现的读问题
	脏读:在一个事务中读取到另一个事务没有提交的数据
	不可重复读:在一个事务中,两次查询的结果不一致(针对的update操作)
	虚读(幻读):在一个事务中,两次查询的结果不一致(针对的insert操作)
事务的隔离级别
	read uncommitted  	读未提交	上面的三个问题都会出现
	read committed  	读已提交	可以避免脏读的发生
	repeatable read		可重复读	可以避免脏读和不可重复读的发生
	serializable		串行化		可以避免所有的问题(但是并不是绝对的)
通过mysql演示设置隔离级别

在这里插入图片描述
在这里插入图片描述
上述通过select @@tx_isolation来查看数据库的隔离级别

脏读演示:

先sart transaction手动开启一个事务
在这里插入图片描述
这里可以很清楚的看出左边的事务还未提交,而右边的事务就已经可以读取到了
当把隔离级别设置为read committed时就不会出现脏读的现象了
在这里插入图片描述
但是也可以明显的看出,在左边的事务中在为提交的情况下两次查询的结果不一样,也就是出现了不可重复读

当在把隔离级别提高时,又可以避免不可重复读的现象,这里就不做演示了

四种隔离级别的效率
	read uncommitted>read committed>repeatable read>serializable
四种隔离级别的安全性
	 read uncommitted<read committed<repeatable read<serializable
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值