美文网首页
MySQL隔离级别

MySQL隔离级别

作者: KillerManA | 来源:发表于2016-06-12 08:13 被阅读69次

    隔离性其实是比较复杂的一种特性,在标准的SQL中定义四种隔离级别,每一种隔离级别都规定了一个事务中所做的修改,哪些在事务内核事务间是可见的,哪些是不可见的,较低级别的隔离通常可以执行更高的并发,系统的开销也是最少的。(每种存储引擎实现的隔离级别不尽相同,具体细节可以查看相关的文档)
    下面我们来理解一下这四种隔离级别:

    • READ UNCOMMITTED(未提交读)
      在这个级别中,事务中的修改,即使没有提交,对于其它事务来说也是可见的。最低级别。事务可以读取未提交的数据,这也被称作脏读,一般很少用这个级别。

    • READ COMMITE(提交读)
      这一级别满足隔离性的简单定义:一个事务从开始到提交之前,所做的任何修改对其它事务来说是不可见的。这个级别也被称作不可重复读,因为两次执行相同的查询,可能会得到不一样的结果。

    • REPEATABLE READ(可重复读)
      这一级别解决了脏读问题,并且保证同一事务中多次读取同样记录的结果是一致的,但是在理论上还是无法解决幻读问题(回头仔细来说幻读的解决)。MySQL默认是这个级别

    • SERIALIZABLE(可串行化)
      最高隔离级别,强制事务串行,避免了幻读,简单来说就是每行数据加锁,所以有可能导致超时和锁资源争用问题,一般也很少使用。

    相关文章

      网友评论

          本文标题:MySQL隔离级别

          本文链接:https://www.haomeiwen.com/subject/oqurdttx.html