之前,我们有讲过数据库的索引,链接为 数据库索引详解 今天,我们将讲解数据库的隔离级别。
一、隔离级别的种类与分别可以解决的问题:
事务的隔离级别分为4个,即 读未提交(read uncommitted)、读已提交(read committed)、可重复读(Repeatable read)、可串行化(Serializable)
oracle默认的隔离级别为 读已提交。mysql的默认隔离级别为 可重复读。
其中可以解决的问题如下表:
简单来说:
脏读即为session A读取到了session B中未提交的数据
不可重复读即为session A读取到了session B提交的数据,即前后session A读取的数据不一致
幻读即为session A读取到了session B insert的数据。
二、隔离级别的设置与查询:
1、设置隔离级别:
设置隔离级别分为设置全局的隔离级别与设置当前的隔离级别
全局设置,已存在的session不会生效,以后的新session会生效(以读未提交举例):
set global transaction isolation level read uncommitted;
单独设置当前连接:
set session tra