MySQL事务
wzg 9/1/2022 MySQLTransaction
# 事务
# 数据库事务
# 原子性(Atomicity)
事务是最小的执行单位,不允许分割
# 一致性(Consistency)
转账者和收款人的总额应该是不变的
# 隔离性(Isolation)
各并发事务之间数据库是独立的
# 持久性(Durability)
它对数据库中数据的改变是持久的
# 并发事务带来问题
# 脏读(Dirty read)
# 丢失修改(Lost to modify)
# 不可重复读(Unrepeatable read)
# 幻读(Phantom read)
# 事务隔离级别
# READ-UNCOMMITTED(读取未提交)
可能会导致脏读、幻读或不可重复读
# READ-COMMITTED(读取已提交)——大部分数据库系统
可以阻止脏读,但是幻读或不可重复读仍有可能发生
# REPEATABLE-READ(可重复读)—(MySQL默认)
可以阻止脏读和不可重复读,但幻读仍有可能发生,加锁使用 Next-Key Locks避免幻读
# SERIALIZABLE(可串行化)——分布式事务下用到
可以防止脏读、不可重复读以及幻读