- 对事务的理解:
事务是数据库中一组原子性sql的执行单元,在这组执行单元之中任何一条sql如果执行失败,那么数据库状态将会回滚到最初的状态,
也就是要么全部执行,要么全部执行失败回滚。
·
·
·
- a原子性:事务中的sql要全部执行成功,如果失败后将会回滚成原来的状态。对于一个事务来说不会只执行其中的一条sql。
- c一致性:数据库中的状态总是从一个一致性状态转换成另一个一致性状态,如果事务中执行过程出现失败将回滚,数据库的数据是不会改变的,以此来保证数据的一致性。
- i隔离性:事务提交之前,每个事务间的操作是相互隔离,互不影响的。
- d持久性:事务一旦提交,那数据将会永久保存到数据库中。
·
·
·
-
脏读:
有两个事务,第一个事务对数据进行了更新,另一个事务查询到了这些数据,
因为某些原因第一个事务回滚了操作,那么这就意味着第二个事务查询的数据将是不对的 -
不可重复读:一个事务的两次查询之中有一个事务对数据进行了修改,那这个事务两个查询的数据就会不一致。
-
幻读
·
·
·
- 四个隔离方式
读提交
读未提交----解决脏读
可重复读----解决不可重复读
串行化------解决幻读