Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP mysql_connect set wait_timeout


Não é bom manter conexões de banco de dados por longos períodos porque o banco de dados fornece apenas um número fixo de conexões por vez; se você estiver usando um por muito tempo, significa que seu banco de dados tem menos capacidade para lidar com outras solicitações, mesmo que você não esteja realmente fazendo nada com essa conexão.

Sugiro encerrar a conexão se o programa terminar de usá-lo por enquanto e reconectar quando chegar a hora de fazer mais trabalho de banco de dados.

Além disso, esta solução protegerá seu programa de possíveis indisponibilidades de banco de dados, ou seja, se você precisar reiniciar seu servidor de banco de dados (isso acontece, mesmo na melhor rede suportada). Se você mantiver a conexão ativa (ou seja, um ping de banco de dados conforme as outras respostas), um evento como esse deixará você exatamente com o mesmo problema que você tem agora. Com uma conexão gerenciada adequadamente que é descartada quando não é necessária, você pode deixar seu daemon em execução com segurança, mesmo que tenha planejado um tempo de inatividade em seu banco de dados; contanto que permaneça inativo pela duração, não precisa ser mais sábio.

(como um aparte, eu também questionaria a sabedoria de escrever um programa PHP que seja executado continuamente; PHP é projetado para solicitações de web de curta duração. Pode ser capaz de executar programas daemon de longo prazo, mas existem ferramentas melhores para o trabalho)