MySQL事务

MySQL的MyISAM实现事务:
	* MyISAM实现事务必须要使用到表锁,伪事务实现,其中操作有点繁琐
事务应用场景:
	一般使用在计算金钱,订单、购物车方面计算
事务的概念:
	* 事务处理可以确保,除非事务在单元内(代码区域块内)的所有操作完成,代码才完全完成,否则永远无法更新到最新数据(也就是事务没有被提交成功之前,代码是无法更新到最新数据)。
	* 通过一组操作,要么一起完成,要么一起失败(一块代码区域内的所有逻辑操作,其中有某一处失败了,则全部失败,必须全部成功执行才能成功)。
	* 事务代码区域内所有逻辑,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)

	1. 原子性:(A)
		* 对于数据修改,要么成功执行,要么所有失败。(一块代码区域内,所有逻辑必须执行成功并且没有任何错误,事务才能成功,其中某个失败则所有失败)。

	2. 隔离性:(C)
		* 当事务还没被提交之前,其中回话访问不了操作流程
	
	3. 一致性:(I)
		* 事务发生前发生后,数据必须相匹配。(也就是数据提交之前,数据必须跟日志中的数据项匹配,才能保证数据的一致性)

	4. 持久性:(D)
		* 当一个事务被提交后,数据是永远被保存着,不会丢失(一旦事务开启后,就会保存在日志中,事务一旦被提交,就会刷新到磁盘中,这样保证数据永远不会被丢失)
MySQL事务的日志理解:
	MySQL在进行事务操作处理的时候,都是使用日志先行操作(MySQL的日志都是大于数据)也就是在开启事务的时候,都是先写入到日志中,一旦事务被提交后,就会被刷新磁盘中,

	可通过命令查询引擎的状态:
		show engine innodb status\G;
最后:
	出了记录日志以外,MySQL还记录了一个撤销日志(undo log 撤销日志)。
	一旦事务开启或提交后,就会默认保存在(redo log 事务日志中),并且保存在(undo log 撤销事务日志中)。
	一旦事务失败了,首先会查询undo log 撤销日志(undo log),并且回滚事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值