zoukankan      html  css  js  c++  java
  • 数据库事物隔离级别用到的锁再次理解

    数据库中的几种隔离级别

    read uncommited--读未提交 该隔离级别指即使一个事务的更新语句没有提交,但是别的事务可以读到这个改变,几种异常情况都可能出现。极易出错,没有安全性可言,基本不会使用。 read committed --读已提交 该隔离级别指一个事务只能看到其他事务的已经提交的更新,看不到未提交的更新,消除了脏读和第一类丢失更新,这是大多数数据库的默认隔离级别,如Oracle,Sqlserver。

    repeatable read --可重复读 该隔离级别指一个事务中进行两次或多次同样的对于数据内容的查询,得到的结果是一样的,但不保证对于数据条数的查询是一样的,只要存在读改,行数据就禁止写,加了行锁(不是表锁),消除了不可重复读和第二类更新丢失,这是Mysql数据库的默认隔离级别。

    serializable --序列化读 意思是说这个事务执行的时候不允许别的事务并发写操作的执行,加了表级锁。允许其他事务读,但不允许任何的事物写操作.完全串行化的读,只要存在读就禁止写,但可以同时读,消除了幻读。这是事务隔离的最高级别,虽然最安全最省心,但是效率太低,一般不会用。

    repeatable加了行级锁,就防止了其他事物对单条记录的值修改,防止了不可重复读现象。但因为只是行级锁,依然不能对insert新增记录防止幻读。只有表锁才能防止。

    repeatable加了行级锁,就防止了其他事物对单条记录的值修改,防止了不可重复读现象。但因为只是行级锁,依然不能对insert新增记录防止幻读。只有表锁才能防止。

    repeatable加了行级锁,就防止了其他事物对单条记录的值修改,防止了不可重复读现象。但因为只是行级锁,依然不能对insert新增记录防止幻读。只有表锁才能防止。

    repeatable加了行级锁,就防止了其他事物对单条记录的值修改,防止了不可重复读现象。但因为只是行级锁,依然不能对insert新增记录防止幻读。只有表锁才能防止。

  • 相关阅读:
    有关Java2的一些菜鸟疑问
    项目杂记——在后台获取Repeater控件里面的控件
    项目杂记——ASP.net js传参之绑定字段做参数
    项目杂记——超链接里传参
    算法基础 (插入排序、合并排序算法)
    软考操作系统习题分析与总结(一)
    Java中thread类与Runnable接口的区别
    DropDownList绑定中午(列名无效)
    struts 和servlet的关系
    Struts2客户端请求过程
  • 原文地址:https://www.cnblogs.com/panxuejun/p/9053561.html
Copyright © 2011-2022 走看看