目录
1.什么是事务?
在应用层一个·业务逻辑可能不是一条sql语句就可以搞定的,简单来说,转账就需要把转账者的钱减少,还要将收账人的钱增加,为了防止转账出现一半的情况,就将这两条sql打包成事务,一起执行。
MySQL是一个网络服务,这就注定MySQL会有大量的用户请求,就一定会引起并发问题,很多事务同时访问同一个表的数据一定会引起数据不一致的问题,所以事务不仅仅是简单的sql的集合,他还有4个特性用来解决数据不一致的问题。
1.原子性:事务要么执行,要么不执行,执行不成功事务会自动回滚到事务的开始。
2.隔离性:防止多个事务并发运行,引发的数据不一致。
有四种隔离级别 1.读未提交 2.读提交 3.可重复读 4.串行化。
3.持久性:事务提交之后,要持久化到磁盘。
4.一致性:无论事务执行成功与否,数据结果都是可预期的。
原子性,隔离性和持久性保证了数据的一致性。
2.为什么会有事务
首先事务是服务应用层的,事务简化了编程模型,事务解决了很多潜在的问题和并发问题,数据库解决的这个问题,程序员在上层就不需要再做了。
3.事务的使用
3.1查看支持事务的存储引擎
InnoDB是支持事务的,MyISAM是不支持事务的。
3.2.事务的开始
3.3事务的提交
事务一旦被提交就会被持久化的保存到磁盘中。
事务有两种提交方式
自动提交和手动提交,注意手动开启的事务只能手动提交。
手动提交