当隔离级别为:Read uncommitted 时(不安全)
一个链接开启事务(操作同一张表)执行删除(delete)或修改(update)语句获得一个排他锁,在事务提交或者回滚到原点时释放锁,另一个链接可以查看的第一个链接没有提交的数据(select)和添加一条数据(insert)不用等待锁,其他操作需要等待锁
当隔离级别为:Read Committed 时(oralce默认级别,推荐)
一个链接开启事务(操作同一张表)执行删除(delete)或修改(update)语句获得一个排他锁,在事务提交或者回滚到原点时释放锁,另一个链接可以查看的第一个链接提交事务后的数据或提交前的数据(select)和添加一条数据(insert)不用等待锁,其他操作需要等待锁
当隔离级别为:Repeatable Read 时(mysql支持的级别,oralce不支持)
一个链接开启事务(操作同一张表)执行查询语句(select)获得一个排他锁,在事务提交之后才会释放锁,另一个链接添加一条数据不需要等待锁,其余操作包括查看(select)也需要等待排他锁
当隔离级别为:Repeatable Read时(效率低)
一个链接开启事务(操作同一张表)执行任意SQL语句(包括select语句)获得一个排他锁,在事务提交之后才会释放锁,另一个链接所有操作都必须等待锁
一个链接开启事务(操作同一张表)执行删除(delete)或修改(update)语句获得一个排他锁,在事务提交或者回滚到原点时释放锁,另一个链接可以查看的第一个链接没有提交的数据(select)和添加一条数据(insert)不用等待锁,其他操作需要等待锁
当隔离级别为:Read Committed 时(oralce默认级别,推荐)
一个链接开启事务(操作同一张表)执行删除(delete)或修改(update)语句获得一个排他锁,在事务提交或者回滚到原点时释放锁,另一个链接可以查看的第一个链接提交事务后的数据或提交前的数据(select)和添加一条数据(insert)不用等待锁,其他操作需要等待锁
当隔离级别为:Repeatable Read 时(mysql支持的级别,oralce不支持)
一个链接开启事务(操作同一张表)执行查询语句(select)获得一个排他锁,在事务提交之后才会释放锁,另一个链接添加一条数据不需要等待锁,其余操作包括查看(select)也需要等待排他锁
当隔离级别为:Repeatable Read时(效率低)
一个链接开启事务(操作同一张表)执行任意SQL语句(包括select语句)获得一个排他锁,在事务提交之后才会释放锁,另一个链接所有操作都必须等待锁