mysql-事务

事务特性

原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性
*原子性
一个事务必须被视为一个不可分割的最小单元,整个事务中的所有操作要么全部提交成功,要么全部失败,对于一个事务来说,不能只执行其中的一部分操作
*一致性
事务将数据库从一种一致性转换到另外一种一致性状态,在事务开始之前和事务结束之后数据库中数据的完整性没有被破坏
*隔离性
一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰
*持久性
一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失

事务并发引发的问题

*脏读
当一个事务读取到了另外一个事务修改但未提交的数据,被称为脏读。
*不可重复读
当事务内相同的记录被检索两次,且两次得到的结果不同时,此现象称为不可重复读。
*幻读
在事务执行过程中,另一个事务将新记录添加到正在读取的事务中时,会发生幻读。

四种隔离级别

*READ UNCOMMITTED:未提交读
*READ COMMITTED:已提交读
*REPEATABLE READ:可重复读
*SERIALIZABLE:可串行化

MySQL中的隔离级别

*MySQL的默认隔离级别为REPEATABLE READ,可以手动修改事务的隔离级别。

MVCC

全称Multi-Version Concurrency Control,即多版本并发控制,解决读-写冲突的问题,主要是为了提高数据库的并发性能。

你可能感兴趣的:(mysql-事务)