读未提交
读取到别的事务未提交的数据。
会导致脏读
脏读:读取到未提交的数据。
读已提交
只能读取到别的事务已经提交的数据|可能会导致事务前后读取的数据不一致,也就是不可重复读。
不可重复读:事务A执行期间读取两次数据行D1,第一次读取完之后,事务B修改了D1的值并且提交了,事务A再次读取数据行D1时,它的值已经发生了改变。所以事务A使用D1前后的值不一致。
可重复读(锁定正在读取的行)
事务前后读取的数据是一样的。上面已经阐述了不可重复读的场景。要做到可重复读,就要求事务A在操作数据集D1~DN的时候,其他的事务不可以操作这个数据集。虽然可重复读,但是也会出现幻读。
幻读:事务A操作数据集D1DN期间,事务B写入了新的数据E1EN,这时事务A读取不到新写入的数据(E1~EN),这被称作是幻读。
串行化(锁表)
事务之间串行执行,一个事务未结束的时候,另一个事务不允许执行。