ТОП-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. Блокировка write


28-12-2009

Блокировка таблицы WRITE предполагает, что модифицировать данные в этой таблице может только поток, установивший блокировку, а другие потоки не могут ни читать, ни записывать в эту таблицу на протяжении действия этой блокировки.
Вот пример того, как работает блокировка WRITE. Начнем с блокировки WRITE таб­лицы data,
Листинг 12.28.
mysql> LOCK TABLE data WRITE;
Query OK, 0 rows affected (0.05 sec) а затем попробуем прочитать из нее данные.
Блокировка write
Так как таблица заблокирована блокировкой WRITE, можно без каких-либо проблем произвести операцию записи.
Листинг 12.30.
mysql> UPDATE data SET stotal = 5000 WHERE pid = 1 and sid = 'INFY';
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
А что с другими сеансами MySQL? Откроем новый сеанс и попробуем прочитать из той же таблицы при активной блокировке WRITE.
Листинг 12.31.
mysql> SELECT * FROM data;
Здесь клиент MySQL остановится и будет ожидать, пока первый сеанс не снимет бло­кировку перед выполнением предыдущей команды. Поэтому вернемся к первому сеансу и снимем блокировку с таблицы.
Листинг 12.32.
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.04 sec)
А теперь команда SELECT, вызванная первой командой во втором сеансе, будет обра­ботана MySQL, т.к. таблица data больше не пребывает в заблокированном состоянии.
Блокировка write
На быстрой дорожке
В ситуациях, когда применяются как блокировки WRITE, так и блокировки READ, MySQL присваивает блокировкам WRITE более высокий приоритет. Это гарантирует нам более быстрое сохранение изменений на диск. Таким образом, можно снизить риск потери изменений при сбоях в работе диска или системы.
В предыдущих примерах показан один из наиболее существенных недостатков ме­ханизма блокировки таблиц: если поток никогда не снимет свою блокировку, все другие потоки, пытающиеся получить доступ к заблокированным таблицам, будут ожидать таймаута блокировки, что приведет к существенному падению производительности всей системы.

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



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Псевдотранзакции с таблицами, которые не поддерживают транзакций Все о MySQL. Реализация псевдотранзакций с помощью механизма блокировки таблиц