Объявление 2. Тайм-аут подключения не поможет вам с блокировками. Тайм-аут - это время ожидания клиентом ответа БД, и если время истекло, БД просто отправляет сообщение об ошибке.
С другой стороны, взаимоблокировки разрешаемы , поскольку одна транзакция имеет блокировку и ожидает другую блокировку, которая принадлежит другой транзакции, в то время как она ожидает ресурс, заблокированный первой транзакцией. Обратите внимание, что когда БД обнаруживает эту проблему, она немедленно выдает ошибку, а не после какого-либо таймаута.
См:
![enter image description here](https://i.stack.imgur.com/v7lOd.gif)
Когда вы увеличиваете тайм-аут, единственное, что вы разрешите, это более длительное ожидание, когда любая транзакция удерживает блокировку, которую вы ожидаете.
например. когда у вас есть клиент, который развертывает большие данные в вашей системе и выполняет блокировку на основе таблицы. Операции по развертыванию могут занять 60 секунд. Предположим, что другой клиент, который читает данные из таблицы, этот клиент заблокирован на 60 seconds
, пока он не сможет прочитать данные. Предположим, timeout = 30 seconds
- это всегда не получается, с другой стороны, такая же ситуация с 90 seconds timeout
будет работать.
Зависит от ситуации, но вы должны предоставлять как можно меньше транзакций для обеспечения лучшей задержки и пропускной способности.