Mysql low_priority для innodb: выберите запрос для отката в тупике - PullRequest
4 голосов
/ 10 декабря 2010

У меня есть набор из двух запросов, которые я иногда видел как блокировка.

Один - это автономный запрос, который нужно запускать только изредка. Я бы хотел, чтобы innodb предпочел откатить этот запрос обратно в случае тупика, а не другого, вроде как работает ключевое слово low_priority для myisam.

Есть ли способ сообщить innodb, что откат заданного запроса в случае тупика является относительно нормальным?

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

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

InnoDB использует количество строк, которые транзакция вставила, обновила или удалила, в качестве меры «размера» транзакции и откатывает меньшую.

1 голос
/ 13 декабря 2010

Чтобы ответить на ваш вопрос: нет, пути нет.

Пока процессы на переднем плане не блокируют процессы на переднем плане, вы могли бы попытаться получить все блокировки заранее?(ВЫБРАТЬ ... ДЛЯ ОБНОВЛЕНИЯ).

Другой вариант - изменить фоновый процесс, чтобы получать блокировки в том же порядке, что и процесс переднего плана.

...