一、事务隔离级别
什么是事务的隔离级别
- 多个客户端操作时,各个客户端的事务之间应该是隔离的,相互独立的,不受影响的。
- 而如果多个事务操作同一批数据时,就会产生不同的问题,我们需要设置不同的隔离级别来解决这些问题。
隔离级别 名称 会引发的问题
read uncommitted 读未提交、脏读 不可重复读、幻读
read committed 读已提交 不可重复读、幻读
repeatable read 可重复读 幻读
serializable 串行化 无
二、事务的四大特征(ACID)
原子性(Atomicit)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
一致性(Consistency)
一致性是指事务必须使数据库从一 个-致性状态变换到另一 个一致性状态。
例如:张三从银行取钱,卡里有1000,他取出100,取钱后卡里的加取出的也必须是1000
隔离性(isolcation)
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每-个用户开启的事务。不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
持久性(durability)
持久性是指一-个事务一且被提交了,那么对数据库中的数据的改变就是永久性的。
即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。