mysql简记(二)

1.数据库的隔离级别

  (1)脏读 (Dirty Reads) : 

        脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

mysql简记(二)_第1张图片

          这个在多线程操作数据库的时候是很可怕的,应该避免

    (2) 不可重复读 ( Non-repeatable Reads ):

         不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

        

mysql简记(二)_第2张图片

      (3) 虚读(幻读)

           幻读和不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如数据的个数)。

mysql简记(二)_第3张图片

2.mySql数据库提供了四种隔离级别

      (1)Serializable (串行化):可避免脏读、不可重复读、幻读的发生。

    (2)Repeatable read (可重复读):可避免脏读、不可重复读的发生。

    (3)Read committed (读已提交):可避免脏读的发生。

    (4)Read uncommitted (读未提交):最低级别,任何情况都无法保证。

    隔离级别从高到低,隔离级别越高,相对效率越低

    mysql默认的使用的为Repeatable read (可重复读)  不可避免幻读

你可能感兴趣的:(mysql简记(二))