Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mysql - атомарная ли процедура update?

2 views
Skip to first unread message

Alex Bakhtin

unread,
Feb 3, 2006, 8:56:42 AM2/3/06
to
Привет,

Mysql 5.0.

Какой будет результат параллельного выполнения конструкции типа
такого:
UPDATE Commands SET reserved=PID1 WHERE reserved=0 LIMIT 100;
UPDATE Commands SET reserved=PID2 WHERE reserved=0 LIMIT 100;

Т.е. из двух процессов я одновременно проапдейчу табличку чтобы
пометить часть записей своим PIDом. Идея в чем: в табличку сливается список
команд, которые надо выполнить. Несколько процессов параллельно лезут в
табличку, вытаскивают оттуда по 100 (условно) команд и выполняют
их. Естественно, выполнение одной и той же команды двумя разными процессами
крайне нежелательно. Возникла идея сначала маркировать записи своим PIDом,
затем SELECTом их оттуда доставать. Можно ли это делать, не задействуя
принудительно механизмы блокировки?

--
Best regards, Alex Bakhtin, CCIE #8439
AMT Group, Cisco Systems Gold Partner, http://www.amt.ru

0 new messages