MySQL笔记——事务管理

事务的基本操作

 

开启一个事物

start transaction

 

创建一个保存点

savepoint 保存点名;

 

回到保存点

rollback to 保存点名;

 

事务操作注意事项

  • 如果没有设置保存点,也可以回滚,只能回到事物的开始(直接使用rollback),但前提是事物必须没有提交

  • 如果一个事务被提交了(commit),则不可以回退(rollback)

  • innoDB支持事务,MyISAM不支持

 

无隔离性的问题

 

脏读:一个事务正在访问数据,并且对事务进行了修改,而这种修改还没有提交到数据库中,这时,另一个事务也访问了这个数据,然后使用了该数据

 

不可重复读:在一个事务中,多次读一个数据,这个事务还没有结束的时候另一个事务也访问了该数据并且对其进行了修改,这样多次读该数据的事务所读到的两次数据则不相同

解决方法:避免修改事务未完成提交之前进行读取数据

 

 

幻读:事务不独立执行的时候发生的一种现象,第一个事务要修改所有的数据,第二个事务同时进行了插入数据,导致第一个事务在操作完成之后发现自己并没有完成修改所有的数据,像产生了幻觉一样

解决办法:如果在操作事务完成数据处理之前,任何其他事务都不可以添加新数据,则可避免该问题

 

 

事务的隔离级别

事务的ACID特性

  • 原子性(不可再分)

  • 一致性(数据库从一个一致性变到另一个一致性)

  • 隔离性(各个事务执行互不干扰)

  • 持久性(事务一旦被提交将永久存储)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值