数据库并发控制机制的理解

来源:07素材网 04月14日 12:37
隔离级别相当于数据库实现的一套现有的机制,我们直接可以复用;但对于特殊需求,我们可以自己使用锁机制来实现,其实我们自己就可以使用锁机制,实现一套隔离级别;

锁机制只是隔离性级别的一种实现;我的感触是,类似封装了函数,数据库隔离性级别,是帮我们实现了几个线程的并发控制方法。但是一些特殊的并发控制,我们可以自己使用锁机制来实现;

数据库并发控制机制的理解


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更新这条数据时加上了排它锁;

原文出处:https://blog.csdn.net/peishuai1987/article/details/89882752
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

头条

在使用SQLite3时遇到的几个坑

在使用SQLite3时遇到的几个坑

《本打算在SQLite3数据库里执行一个查询语句,使用的是php语言,起初遇到的是权限问题: permission denied,因为SQLite3数据库文件和PHP执行者属于两个不同的用户,首先需要对这个文件执行mode 777的权限开放,然后,又遇到了下面这样的PHP错误