Mysql--事务

什么是事务?

事务就是用户定义的一系列原子性数据库操作,这些操作要么全部成功执行,要么全部不执行。事务是数据库管理系统中的一个核心概念,用于确保数据的完整性和一致性

事务的四大属性(ACID)

原子性(A)

事务包含的所有操作要么全部成功,要么全部失败回滚,因此事物的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响

一致性(C)

事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行前和执行之后都必须处于一致性状态

隔离性(I)

多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离

持久性(D)

一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作

数据库并发性问题

数据库并发性指的是多个事务可以同时访问数据库中的数据,而当多个事务在数据库中并发执行时,数据的一致性可能受到破坏,从而导致数据出现问题

事物的隔离级别

数据库指定了4种事务的隔离级别,目的是为了解决数据库访问的并发性问题导致的数据的一致性破坏

Read uncommitted(未授权读取、读未提交)

Read committed(授权读取、读提交)

Repeatable read(可重复读取)MySql默认隔离级别

Serializable(序列化)最安全的加锁

悲观锁

是一种并发性控制机制,它假设会发生冲突,因此在数据被读取时就会将其锁定,以防止其他事务修改数据。悲观锁通常用于写操作多的场景确保数据不会被其他事务修改

方式:排他锁、显式锁定、锁定整个表

悲观锁的隔离级别

  • MySQL的事务隔离级别也会影响悲观锁的行为。在READ COMMITTEDREPEATABLE READ隔离级别下,悲观锁的行为会有所不同。REPEATABLE READ是MySQL的默认隔离级别,它对悲观锁提供了更好的支持。

乐观锁

并不是一种数据库锁机制,而是一种冲突检测机制(版本冲突检测机制和时间戳冲突检测机制),它的特点就是并发性较好,事务修改数据时,其他事务仍

posted @ 2024-11-23 16:07  curry库-04049  阅读(39)  评论(0)    收藏  举报