Defina “lock wait timeout” no MySQL

13

Onde eu definiria o tempo máximo que uma consulta aguardaria por um bloqueio no MySQL 5.0.68 antes de atingir o tempo limite?

Gaius
fonte

Respostas:

6

Outras configurações de tempo limite que são gerais (não apenas para bloqueios, pois innodb_lock_wait_timeout se aplica apenas aos bloqueios de linha do InnoDB) seriam wait_timeout e interactive_timeout (ambos padrão para 28.800)

Derek Downey
fonte
8

Por padrão, são 50 segundos

Basta definir innodb_lock_wait_timeout conforme necessário.

RolandoMySQLDBA
fonte
1

Se você atingir o tempo limite de 50 segundos do InnoDB, terá um aplicativo mal projetado!

Esse tempo limite existe para capturar coisas impertinentes que não podem ser capturadas de outra maneira.

Rick James
fonte
1
Ou devido a erros, eu tenho um servidor mysql e mariadb extremamente ocupado e os deadlocks são uma coisa normal que acontece o tempo todo. Mesmo que seja "impossível". Se você possui cem milhões de linhas e dez milhares de comandos sql a cada segundo, encontrará todo tipo de bug no mysql (falhas), além de deadlocks de vários tipos.
John
1
Depende da situação. Nos documentos do mysql: Você pode diminuir esse valor para aplicativos altamente interativos ou sistemas OLTP, para exibir rapidamente o feedback do usuário ou colocar a atualização em uma fila para processamento posterior. Você pode aumentar esse valor para operações de backend de longa execução, como uma etapa de transformação em um data warehouse que aguarda a conclusão de outras operações grandes de inserção ou atualização.
G4b0 5/09/19
Verificando se o aplicativo está mal construído ... sim!
Noah Duncan