事务隔离级别
事务的概念
事务是一组原子性的SQL语句,或者说一个独立的工作单元
事务内的语句要么全部执行成功,要么全部执行失败
事务的四种特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的隔离性
通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的
假如A,B两个事务,A向数据库中写入了数据,但是没有提交,那么在B事务中到底能不能看到A事务的修改呢?
事务的隔离级别
在SQL标准中定义了四种隔离级别,
每一种级别都规定了一个事务中所做的修改,
哪些在事务内和事务间是可见的,哪些是不可见的
select @@transaction_isolation;
读未提交(READ UNCOMMITTED)
读提交 (READ COMMITTED)
可重复读 (REPEATABLE READ)
串行化 (SERIALIZABLE)
有一个问题比较好?为什么会有重复读的需求?
事务的隔离级别是怎么实现的呢?