innodb的mvcc
一致性的非鎖定讀(consisten nonlocking read)是指innodb存儲引擎通過行多版本控製(multi versioning)的方式來讀取當前行時間數據庫中行的數據
innodb的讀又分為快照讀和當前讀,其中select操作基本上是快照讀,不加鎖,
當前讀則包括:insert/update/delete以及select---for update和select---in share mode,當前讀是要加鎖的,根據隔離級別的不同,所加的鎖也不同
在事務隔離級別READ COMMITTED和REPEATABLE READ(innodb存儲引擎的默認事務隔離級別)下,innodb存儲引擎使用非鎖定的一致性讀。然而,對於快照數據的定義卻不相同。在READ COMMITTED事務隔離級別下,對於快照數據,非一致性讀總是讀取被鎖定行的最新一份快照數據。而在REPEATABLE READ事務隔離級別下,對於快照數據,非一致性讀總是讀取事務開始時的行數據版本
最後更新:2017-11-08 09:34:18