在数据库领域,OLTP(联机事务处理)系统要保证一致性(Consistency),通常不是靠单一机制,而是由事务的 ACID 特性共同保障,其中一致性是目标,其他机制是手段。
下面从概念 → 实现机制 → 常见手段系统说明。
在 ACID 中:
一致性:事务执行前后,数据库都必须处于“合法状态”,满足所有约束、规则和业务逻辑。
注意:
例子:
OLTP 依赖事务作为基本单位:
BEGIN;
UPDATE account SET balance = balance - 100 WHERE id = A;
UPDATE account SET balance = balance + 100 WHERE id = B;
COMMIT;
数据库自身提供“硬约束”:
CHECK (balance >= 0)
➡ 防止非法状态写入
高并发下,靠隔离机制防止不一致:
示例问题防止:
确保“半成功”不可能存在:
数据库只能保证“结构一致”,业务一致靠应用:
例如:
下单 → 扣库存 → 创建订单 → 支付
任何一步失败 → 整体回滚或补偿
在分布式数据库中:
需要区分:
| 类型 | 说明 |
|---|---|
| 强一致 | 提交即可见 |
| 最终一致 | 短暂不一致,后对齐 |
| 业务一致 | 对账后平衡 |
OLTP 通常是强一致或近强一致
OLTP 通过事务 + 约束 + 并发控制 + 日志恢复 + 应用逻辑,共同保证数据库在任意时刻都处于业务合法状态,这就是一致性。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。