十一国庆长假,朋友圈的朋友已经走向了大江南北,而我却在公司加班。这时候,组内新来的萌妹实习生过来找我。
师兄,AbstractPayExecutor这个类你修改了代码吗?
是呀,我刚刚修改了代码并提交到GitLab上了。
哦,我说的呢,我刚刚看到的一个常量没有了。
奥。我忘记和你说了。哈哈啊,这不是出现了不可重复读现象么。
嗯?师兄你说的可是数据库的读现象?能给我讲讲吗,我一直都不是很懂这个知识点。
好的。
“读现象”是多个事务并发执行时,在读取数据方面可能碰到的状况。了解它们有助于理解各隔离级别的含义。其中包括脏读、不可重复读和幻读。
事务隔离级别我们知道,在数据库中,事务是要满足ACID的,即满足原子性、一致性、持久性以及隔离性。
在数据库事务的ACID四个属性中,隔离性是一个最常放松的一个。可以在数据操作过程中利用数据库的锁机制或者多版本并发控制机制获取更高的隔离等级。
但是,随着数据库隔离级别的提高,数据的并发能力也会有所下降。所以,如何在并发性和隔离性之间做一个很好的权衡就成了一个至关重要的问题。
奥。你说的这个我明白,但是具体的隔离级别和读现象有什么关系呢?
不同的隔离级别会导致和解决不同的读现象,我先给你介绍下都有哪些读现象吧。
脏读第一种读现象叫做脏读,顾名思义,就是读到了脏数据,即无效数据。