Skip to content

SQL Isolation Levels is not that simple

Published: at 12:00 AM

Table of contents

Open Table of contents

Introduction

  Isolation Levels 是数据库中的一个非常重要的概念。 可以这样讲,如果一个程序员不了解这个概念,不清楚他所使用的数据库的Isolation Level是什么, 那么他写的程序大概率会出现一些“隐藏的”、他无法理解的bug。 Isolation Levels在网络上有很多,很容易搜到一大堆。比如 No Dirty Reads: Everything you always wanted to know about SQL isolation levels (but were too afraid to ask) 这篇就讲的还不错。除此之外,还有很多很好的资料,本文就不去做这种重复的工作了,着重讲一下我的学习过程和理解。

  首先要明白的是,Isolation Levels 是在 SQL-92 标准中引入的,这个标准也给很多人创造了发论文批评的机会。 SQL Standards Revisions

Phenomena

  Isolation Levels 是基于 phenomena 来定义的。

P - broad interpretation A - strict interpretation

看着恶心吗?但是就是从Phenomena出发,才有了当前公认的 Isolation Levels:

Isolation Levels with Phenomenas

Thoughts