10.MYSQL:什么是事务?事务的性质?事务的应用?

所谓事务,其实就是相当于操作系统里的原子性操作它将一组对于数据库表的操作绑定在一起,只有所有操作都成功,才提交,只要有一个操作失败的话,那么就不会提交。这样的机制保证了数据库数据的原子性、一致性、隔离性以及持久性。


 所谓ACID即是上面提到的原子性、一致性、隔离性以及持久性。

原子性:事务被视为不可分割的最小单元。事务的所有操作要么全部提交成功,要么全部失败回滚。

一致性:数据库在事务执行前后保持一致性的状态。在一致性的状态之下,所有事务对一个数据的读取状态都是相同。 

 隔离性:一个事务所做的修改,在提交之前,对其他的事务是不可见的。

持久性:一旦事务提交之后,其所做的修改将永久的保存在数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。


首先还得明确,只有存储引擎为INNODB的MYSQL数据库这才支持事务!

要掌握事务机制,我们需要以下几个知识点:

1)对于表的增删改查的提交方式?

在MYSQL中,表的默认提交方式是自动提交(也即默认:autocommit=1),也就是对于表的操作是即时生效的。

可以通过set autocommit = 0; 修改为手动显示提交!显示提交的语句为 commit

2)事务如何开启?

在MYSQL中,事务通过语句   start transaction 开启!他等价于  set autocommit = 0。两者写一个就行了。

还有,在INNODB的锁机制中, start transaction 等价于 unlock 解锁操作

3)事务如何回滚?

记住!事务只支持 UPDATE/DELETE/INSERT语句的回滚,不支持SELECT/DROP/CREATE的回滚,但是事务处理块中可以使用这几条语句(SELECT/DROP/CREATE)。

rollback语句实现事务的回滚。默认情况下,回退到事务操作之前!在设置了保存点之后,可回滚到相应的保存点处!

4)如何设置保存点?如何根据设置的保存点进行回滚操作?

在每条操作之后添加语句   savepoint 保存点名称  即设置了对应操作的保存点!

通过 rollback to 保存点名称 可以回滚到相应的保存点不过记住回滚点之前的操作都是生效的,回滚点之后的操作失效!


commit and chain  结束一个事务开启另一个事务

rollback and release  回滚之后断开客户端的连接


在无并发的情况之下,事务串行进行,隔离性一定能够满足!只要再满足原子性,就一定能够满足一致性!

在并发的情况之下,事务并行执行,除了要满足原子性,还要满足隔离性,事务的一致性才能满足!

事务做持久化是为了应对数据库崩溃的情况。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值