ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. read committed


28-12-2009

Еще менее стабильным, чем уровень изолированности REPEATABLE READ, является уровень изолированности READ COMMITTED. На этом уровне транзакция может видеть не только новые записи, добавленные другими транзакциями, но и изменения, произведенные этими транзакциями. Другими словами, это означает, что операторы SELECT на протяжении одной и той же транзакции возвращают различные результаты, если в этот момент соответствующие таблицы были изменены другими транзакциями. Это видно на рис. 12.6.
Пусть задан уровень изолированности READ COMMITTED, вторая транзакция "увидит" на счету маклера A 1000 акций, пока первая транзакция еще находится на стадии выполнения. Однако после завершения первой транзакции, вторая "увидит" 600 акций на счету маклера A и 1400 акций на счету B несмотря на то, что первая транзакция все еще находится на стадии выполнения.
read committed
 Это очевидная проблема - когда вторая транзакция "видит" два различных резуль­тирующих набора и поэтому непонятно, какому из них можно доверять. Экстраполируя эту ситуацию, предположим, что вместо одной транзакции одновременно работает много транзакций, которые выполняют обновления данных в базе данных. В результате каждый запрос, выполненный транзакцией, приводит к другому результирующему набору (отсюда и термин неповторимое чтение),
read uncommitted
Уровень изолированности READ UNCOMMITTED обеспечивает минимальную степень изолированности транзакций. Кроме того, что для него характерно ложное и неповтори­мое чтение, транзакция такого уровня изолированности имеет возможность считывания данных, обработка которых еще не закончена другими транзакциями. Если такая тран­закция использует невыполненные изменения, вызванные другими транзакциями, для своих собственных вычислений и по этим изменениям потом будет произведен откат, это может закончиться полным разрушением данных.
Рассмотрим пример, представленный на рис. 12.7. Предположим, что вторая транзак­ция работает с уровнем изолированности READ UNCOMMITTED, это приведет к возмож­ности просмотра изменений первой транзакции, пока она выполняется, а значит, "увидеть" 600 акций на балансе маклера A еще до того, как эта транзакция будет завер­шена. Но если транзакция между маклерами A и B впоследствии отменяется командой ROLLBACK, вторая транзакция будет продолжать работать с ошибочными данными (отсюда применение для обозначения ошибок такого типа термина грязное чтение).
read committed

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Уровни изолированности транзакций Все о MySQL. Изменение уровня изолированности транзакций