一、什么是事务?
简单说就是逻辑上的一组操作,要么都执行,要么都不执行。
举个例子,假如小明要给小红转账100元,这个转账会涉及到两个关键操作:①将小明的余额减少100元。 ②将小红的余额增加100元 。但是万一再这两个操作之间突然出现错误,比如说银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都失败。
二、事务的特性ACID
1、原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么全不起作用。
2、一致性:执行事务前后,数据保持一致。例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的。
3、隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间的数据是独立的。
4、持久性:一个事务被提交之后,他对数据库的改变是持久的,即使数据库发生故障也不应该对其有任何影响。