隔离级别相当于数据库实现的一套现有的机制,我们直接可以复用;但对于特殊需求,我们可以自己使用锁机制来实现,其实我们自己就可以使用锁机制,实现一套隔离级别;
锁机制只是隔离性级别的一种实现;我的感触是,类似封装了函数,数据库隔离性级别,是帮我们实现了几个线程的并发控制方法。但是一些特殊的并发控制,我们可以自己使用锁机制来实现;
1、如果事务A设置为read uncommitted,那么事务B做了update还未提交,事务A能够读取到事务B更新的数据,事务B如果回滚,事务A则看到事务B回滚后的数据;
2、如果事务A设置为read committed,那么事务B做了update并且没有提交,事务A是读取不到事务B更新的数据的;
3、如果事务A设置为repeatable read,那么事务B做了update并提交,事务A仍然读取不到,事务B即使多次commit,事务A全都读取不到;
4、如果事务A设置为serializable,如果事务B已经开始运行并做了更新,那么事务A的任何操作得一直等待;如果B没做更新,则A还是能读取的;
以上四种级别,事务A如果正在更新一条数据,事务B如果要更新同一条数据,则会等待直到超时,因为事务A更新这条数据时加上了排它锁;
1 thought on “数据库并发控制机制的理解”