跳转至
用户认证 - eMac Tech Docs

用户认证

重要提醒

为了您的权益以及学习体验,请不要外借账号!

如果您没有账号或忘记密码,请联系管理员重置密码。

请输入您的登录信息

事务处理

作用

Syntax error in textmermaid version 11.6.0

本质

保证数据库操作要么全部成功,要么全部失败的机制

ACID特性

特性 说明
原子性(Atomicity) 事务是不可分割的工作单位
一致性(Consistency) 事务执行前后数据库状态一致
隔离性(Isolation) 并发事务互不干扰
持久性(Durability) 事务提交后改变永久有效

示例

-- 银行转账事务示例
BEGIN TRANSACTION;
  UPDATE accounts SET balance = balance - 100 WHERE id = 1;
  UPDATE accounts SET balance = balance + 100 WHERE id = 2;

  -- 检查余额是否充足
  IF (SELECT balance FROM accounts WHERE id = 1) < 0 THEN
    ROLLBACK;
  ELSE
    COMMIT;
  END IF

注意事项

  • 事务隔离级别选择:
  • READ UNCOMMITTED: 可能脏读
  • READ COMMITTED: 避免脏读
  • REPEATABLE READ: 避免不可重复读
  • SERIALIZABLE: 最高隔离级别
  • 长时间运行的事务会降低并发性能
  • 死锁是多个事务互相等待导致的