事务有哪些特性

困难只是暂时的,放弃才是永久的。

—— 罗伯特·舒勒

事务是数据库操作的基本逻辑单元,具有ACID四大特性,确保数据的一致性和可靠性。

特性

描述

实现机制示例

Atomicity (原子性)

事务是不可分割的最小单元,要么全部成功,要么全部失败回滚。

InnoDB 的 undo log(回滚日志)记录修改前的数据,失败时通过日志回滚操作。

Consistency (一致性)

事务执行前后,数据库从一个一致状态变为另一个一致状态(业务规则约束)。

通过原子性、隔离性、持久性共同保证(例如:转账前后总金额不变)。

Isolation (隔离性)

并发事务之间互不干扰,避免数据混乱。

通过锁机制(如行锁、表锁)或 MVCC(多版本并发控制)实现不同隔离级别。

Durability (持久性)

事务提交后,修改永久生效,即使系统崩溃也不丢失。

redo log(重做日志)记录修改后的数据,崩溃恢复时重放日志恢复数据。

事务是由MySQL的引擎来实现的,我们常见的InnoDB引擎它是支持事务的。

并不是所有的引擎都能支持事务,比如MySQL原声的MyISAM引擎就不支持事务,也正是这样,所以大多数MySQL的引擎都是用InnoDB。