Mysql事务
1.什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID四个特点。 原子性(Atomicity): 一个事务要么全部执行,要么全部不执行。也就是说一个事务不可能执行到一半就停止了。比如:去超时购买商品,付钱和拿到商品这两步要么同时执行,要么都不执行。 一致性(Consistency): 指事务的运行不会改变数据库中数据的一致性。比如:a+b=10,a改变了,b也应该随之变化。 隔离性(Isolation): 一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是个例的,并发执行的各个事务之间不能相互干扰。 持久性(Durability): 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。当事务提交之后,数据会持久化到硬盘,修改是永久性的。 事务并发会发生什么问题? 脏读 一个事务在执行的过程中读取到了其他事务还没有提交的数据。 不可重复读 事务A在读取一条记录时,这个事务还没有结束,事务B对这个记录进行修改,事务A再次读取这条记录时,记录发生了变化。也就是事务A两次读取到的数据发生了变化成为不可重复读。 幻读 事务A读取表中的数据,事务B在事务A还没有结束时,进行了插入操作,事务A再次读取,发现表中有新的数据,就好像发生了幻觉一样。 事务的隔离级别: 隔离级别分为四种: 读未提交:READ-UNCOMMITTED 读已提交:READ