提问者:小点点

可序列化隔离级别和未提交的插入


想象我有两笔交易

T1-以READ_COMMITTED隔离级别写入表(例如Table1)的繁重数据处理作业。T2-以SERIALIZABLE隔离级别从Table1读取数据的事务。

autoincrement_id(INT)数据(varchar)

INSERT INTO Table1… INSERT INTO Table1…INSERT INTO Table1…

从表1中选择autoincrement_id

如果T2在T1之前开始,它实际上会停止T1(正确吗?)

但是如果T1在T2之前开始,在T2期间还在进行中,T2会读到T1插入但没有提交的数据吗?


共1个答案

匿名用户

如果T2在T1之前开始,它实际上会停止T1(正确吗?)

是的,正确!

但是如果T1在T2之前开始,在T2期间还在进行中,T2会读到T1插入但没有提交的数据吗?

不,T1会自动停止T2。所以T2等待T1被提交或回滚(至少在理论上…)。