У меня есть таблица InnoDB со столбцом тайм-аута блокировки.Если этот столбец равен нулю, блокировка отсутствует, в противном случае блокировка истекает в соответствии с отметкой времени в этом столбце.
Проблема, с которой я столкнулся, состоит в том, что в этой таблице много строк, и многие строки в этой таблице обрабатываются каждую минуту, но в настоящее время обработка выполняется по этой модели:
1. select rows to be processed
2. iterate over rows to be processed in Java
a. Try to acquire a lock on row
b. if lock acquired, process row and continue; else continue
Это очень быстро становится неэффективно, поэтому было бы неплохо, если бы я мог вместо этого просто попытаться получить блокировку всех строк, которые должны быть обработаны, а затем вернуть набор результатовстроки, для которых была получена блокировка в одной транзакции или нескольких более эффективных транзакциях.
Что бы вы порекомендовали?