事务与并发控制
在你使用数据库处理多条数据操作时,可能会希望“要么都成功,要么都失败”,不能只执行了一半。你也可能会遇到多个用户同时读写数据库的情况,如果处理不当,就可能造成数据错误、冲突或丢失。
为了解决这些问题,数据库引入了两个核心机制:事务(Transaction) 和 并发控制(Concurrency Control)。
这一节,你将学习:
- 什么是事务,事务的四大特性(ACID)
- 什么是并发访问,会带来哪些问题
- 常见的并发控制机制(锁、隔离级别等)
什么是事务?
事务(Transaction)就是一组操作的集合,这些操作被视为一个原子单元,要么全部成功,要么全部失败。
举个例子:你在银行用手机转账,系统会执行如下两个操作:
- 从你的账户扣钱;
- 给对方账户加钱。
如果只完成第 1 步,出错了,第 2 步没执行,那就尴尬了(钱没了😅)。事务的作用就是保证这两步操作要么都成功,要么都失败。
事务的四大特性(ACID)
事务有四个核心特性(Atomicity、Consistency、Isolation、Durability),简称 ACID。
特性 | 含义 |
---|---|
原子性(A) | 事务中的操作要么全部执行,要么全部不执行。 |
一致性(C) | 事务执行前后,数据必须保持一致状态。 |
隔离性(I) | 多个事务并发执行时,相互之间不会互相干扰。 |
持久性(D) | 事务一旦提交,对数据库的修改是永久性的,不会因宕机等原因丢失。 |
🌟 你可以记住:ACID 是事务的“守护神”,它保证了事务执行的正确性与稳定性。
并发访问下的问题
当多个用户或程序