MySQL中的事务(Transaction)是一组数据库操作的逻辑单元,确保这些操作要么全部成功提交,要么全部失败回滚,从而维护数据的一致性。事务具备四个关键特性,即 ACID 特性。
ACID 特性
原子性(Atomicity):事务里的所有操作要么全部成功,要么全部失败回滚。就像银行转账,从一个账户扣除金额和向另一个账户添加金额这两个操作必须一起完成,若其中一个操作失败,整个事务就会回滚,保证数据的一致性。
一致性(Consistency):事务的执行会让数据库从一个一致状态转变到另一个一致状态。在转账操作中,转账前后两个账户的总金额应该保持不变,若出现异常,事务会回滚,确保数据库数据的准确无误。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不会被其他事务干扰。不同的隔离级别能提供不同程度的隔离,常见的隔离级别有读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。
持久性(Durability):一旦事务提交成功,它对数据库所做的修改就会永久保存,即便系统崩溃或出现故障,数据也不会丢失。