概念说明:
肮脏的读数:这意味着数据可以访问数据并修改数据,并且此修改尚未提交到数据库中。目前,另一项交易也访问了此数据,然后使用此数据使用此数据
重复阅读:指在一次交易中多次读取相同的数据。在此交易结束之前,另一笔交易也访问了相同的数据并提交了修改。第二笔交易,在第一次交易中读取两次数据可能是不同的。以这种方式,数据读取两次是不同的,因此被称为不可再生读数。
幻影读数:指交易不是独立时发生的现象。例如,第一个事务修改了表中的数据。此修改涉及表中的所有数据行。在同一时间,第二笔交易还修改了该表中的数据。此修改是插入表中的一系列新数据线。然后,将来,操作第一个交易的用户将发现表中仍然存在修改后的数据行,就好像发生了幻觉一样。
mysql的隔离水平
实验如下:
RC隔离水平首次
未提交交易时,Windows A将不会提交。更新数据将锁定数据。
1AAAA2BBB32 ROO和SET(0.00秒)
查询确定,0行影响(0.00秒)
查询OK,1行影响(0.01秒)行匹配:1更改:1警告:0
由于窗口A的锁定,窗口B中的更新数据失败了。
错误1205(HY000):锁定等待时间超出;尝试重新启动交易
窗口B插头数据成功
查询OK,1行影响(0.00秒)
RC可以避免肮脏的阅读并避免更改现有数据。但是,不可能避免重复读取:如果数据当时查询数据,则将数据修改并提交到数据,并且当数据时数据已更改再次读取数据。图片读取:窗口B仍然可以插入新数据。将新数据插入B窗口后,窗口A的数据将再次读取数据,数据将更改
第二次采用RR隔离水平
月亮A打开交易并读取数据。
查询确定,0行影响(0.00秒)
1DDDD22BBBBBB33EEE44FFF54 set(0.00 sec)中
B董事会开放交易,修改和插入数据,并提交。
查询确定,0行影响(0.00秒)
查询OK,1行影响(0.00秒)行匹配:1更改:1警告:0
查询OK,1行影响(0.00秒)
1GGGGGGGGGGGGGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKKKKKK65 set(0.00秒)
窗口A再次读取数据。窗口B修改的数据不会影响A,但是新插入的数据会影响A
1DDDD22BBBBBB33EEE44FFF54 set(0.00 sec)中
RR隔离级别可以避免肮脏的阅读,并且可以反复阅读和阅读(注意:大多数信息无法解决,MySQL实际上已经解决了)
GAP锁定窗口交易未提交
查询OK,1行影响(0.00秒)行匹配:1更改:1警告:0
窗户
错误1205(HY000):锁定等待时间超出;尝试重新启动交易
查询OK,1行影响(0.00秒)
成功,失败,mySQL的数据将锁定contert_id = 2的数据