Mysql--事务
什么是事务?
事务就是用户定义的一系列原子性数据库操作,这些操作要么全部成功执行,要么全部不执行。事务是数据库管理系统中的一个核心概念,用于确保数据的完整性和一致性
事务的四大属性(ACID)
原子性(A)
事务包含的所有操作要么全部成功,要么全部失败回滚,因此事物的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响
一致性(C)
事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行前和执行之后都必须处于一致性状态
隔离性(I)
多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离
持久性(D)
一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作
数据库并发性问题
数据库并发性指的是多个事务可以同时访问数据库中的数据,而当多个事务在数据库中并发执行时,数据的一致性可能受到破坏,从而导致数据出现问题
事物的隔离级别
数据库指定了4种事务的隔离级别,目的是为了解决数据库访问的并发性问题导致的数据的一致性破坏
Read uncommitted(未授权读取、读未提交)
Read committed(授权读取、读提交)
Repeatable read(可重复读取)MySql默认隔离级别
Serializable(序列化)最安全的加锁
悲观锁
是一种并发性控制机制,它假设会发生冲突,因此在数据被读取时就会将其锁定,以防止其他事务修改数据。悲观锁通常用于写操作多的场景确保数据不会被其他事务修改
方式:排他锁、显式锁定、锁定整个表
悲观锁的隔离级别:
- MySQL的事务隔离级别也会影响悲观锁的行为。在
READ COMMITTED和REPEATABLE READ隔离级别下,悲观锁的行为会有所不同。REPEATABLE READ是MySQL的默认隔离级别,它对悲观锁提供了更好的支持。
乐观锁
并不是一种数据库锁机制,而是一种冲突检测机制(版本冲突检测机制和时间戳冲突检测机制),它的特点就是并发性较好,事务修改数据时,其他事务仍

浙公网安备 33010602011771号