Справочное руководство по MySQL7.5.8.6 Пример работы согласованного чтения в InnoDB
7.5.8.6 Пример работы согласованного чтения в InnoDB
При выполнении согласованного чтения (т.е. обычного оператора
Чтобы такой момент времени ``передвинуть вперед'', нужно зафиксировать
транзакцию, а затем выполнить новую команду Это называется многовариантным контролем совпадений. Пользователь A Пользователь B SET AUTOCOMMIT=0; SET AUTOCOMMIT=0; время | SELECT * FROM t; | пустой набор данных | INSERT INTO t VALUES (1, 2); | v SELECT * FROM t; пустой набор данных COMMIT; SELECT * FROM t; пустой набор данных; COMMIT; SELECT * FROM t; --------------------- | 1 | 2 | --------------------- Таким образом, пользователь A увидит строку, вставленную пользователем B только после того, как B зафиксирует вставку, и A зафиксирует свою собственную транзакцию, чтобы момент времени передвинулся на позицию, находящуюся после фиксации, произведенной пользователем B. Чтобы увидеть ``самое свежее'' состояние базы данных, необходимо использовать чтение с блокировкой: SELECT * FROM t LOCK IN SHARE MODE; |
|
|
| © 2009 Тест скорости интернета | Boont.Ru |