ëÁÞÁÎÏ×ÓËÉÊ äÍÉÔÒÉÊ wrote:
собственно субж?

дело в том, что мне надо у ряда записей произвести изменение поля (в данном случае счетчик обращений), вероятность того что две транзакции будут одновременно менять пересекающиеся наборы данных крайне высока, вот и возникает вопрос насколько реально нарваться на дидлок

предполагаемый запрос на изменение:

update some_table
set
  counter = counter + 1
where id in (<перечень заисей, которые надо изменить>)

например у тразакции тр1 набор значений (1, 2, 3)
а у транзакции тр2 набор (3, 2, 1)

если эти две транзакции начнут изменение одновременно, что произойдет?


дидлок и произойдет. :) и кому-то придется откатится, а другой сможет коммитнутся.

Роман

Ответить