Этот UPDATE
выиграет от составного индекса:
INDEX(pgmNumber, state)
Тупиковой ситуации, вероятно, не должно быть. Итак, ответьте на несколько вопросов:
Пожалуйста, предоставьте SHOW CREATE TABLE
.
С каким запросом происходит взаимоблокировка?
Является ли UPDATE
частью транзакции с несколькими операторами (BEGIN...COMMIT
)? Если да, то давайте посмотрим на другие запросы.
У вас есть SELECT
в той же строке? Если да, то есть ли на конце FOR UPDATE
?
Редко бывает полезно иметь индекс для столбца с низкой мощностью. Бросьте свой INDEX(state)
.