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

Usando conexões persistentes PHP-MySQL para executar o blog WordPress

Ao se conectar ao banco de dados MySQL, o weblog WordPress baseado em script PHP usará conexão não persistente por padrão. Ou seja, o WordPress acionará o PHP para gerar uma nova conexão com o servidor MySQL para cada solicitação de página dinâmica e, posteriormente, fechará a conexão com o banco de dados assim que a construção da página da web for concluída. A abertura e o fechamento repetitivos de conexões MySQL causam sobrecarga e consomem recursos preciosos de CPU, memória e sistema no host da web.

Usar uma conexão persistente para conectar ao servidor de banco de dados MySQL nem sempre é uma boa opção. Cada conexão ocupa recursos, incluindo memória, buffers, caches de tabelas ou threads internamente no MySQL e soquetes, arquivos abertos ou atividade de E/S no nível do SO. Assim, quando muitas conexões persistentes são abertas, mas não fechadas após a conclusão das transações, os recursos no sistema podem esgotar e degradar o desempenho do servidor web ou, na pior das hipóteses, causar falha no HTTP. Além disso, se uma conexão persistente estiver parada, inativa ou se tornar extinta ou não for mais usada, ela não será encerrada, e o servidor MySQL só a fechará para liberar o recurso ocupado pela conexão após cerca de 28.800 segundos (8 horas) por padrão, a menos que alterou os parâmetros de tempo limite nos arquivos de configuração my.cnf. Esses poucos fatores podem trazer problemas como o MySQL recusar novas conexões de banco de dados ou servidor lento se os aplicativos não lidarem adequadamente com conexões persistentes.

Portanto, se você não é um webmaster experiente, não tente alterar o WordPress para usar conexões persistentes.

No entanto, para blogueiros que têm blogs ocupados e grandes e enfrentam restrições na atualização das especificações do sistema de hospedagem da web e não desejam usar o plug-in de cache de página estática, como o WP-Cache, a conexão persistente é uma opção disponível para ajustar e otimizar o servidor da web para ver se a veiculação da página da Web pode ser mais rápida. A conexão persistente permite que a conexão seja aberta uma vez e não será fechada quando a execução do script terminar. Em vez disso, o link é mantido em pool e permanecerá aberto para uso futuro. Assim, o uso de conexões persistentes eliminará o processo de abertura e fechamento da conexão. Isso reduzirá indiretamente as sobrecargas de servidor relacionadas à conexão do MySQL, como autenticação para estabelecer conexão onde apenas uma vez é necessária, economizando tráfego de rede extra e recursos usados ​​para lidar com conexão extra. Além disso, pode haver alguns caches de nível de conexão, que precisam ser preenchidos para um desempenho adequado e, potencialmente, reduzir o número de conexões com o banco de dados.

Por padrão, o WordPress está usando a função mysql_connect() que estabelece uma nova conexão de banco de dados em cada página. O recurso de conexão persistente exigirá a função mysql_pconnect() que usa exatamente a mesma API, mas possui pool de conexão embutido para manter as conexões ativas entre as solicitações. Então, para mudar para usar a conexão persistente para executar o WordPress, a função mysql_connect() deve ser substituída por mysql_pconnect().

Para habilitar e usar conexões persistentes com o WordPress, basta fazer login no seu host com SSH (ou Telnet inseguro) e alterar o diretório para o diretório inicial webroot onde o blog WordPress está instalado.

Localize e edite o wp-config.php arquivo e adicione as seguintes linhas (ou altere para os seguintes valores se as constantes já existirem):
define('USE_PCONNECT', true);
define('WP_CACHE', false);

WordPress e PHP (desde que você não desative o mysql.allow_persistent no PHP.INI) usará imediatamente conexões persistentes para se conectar ao banco de dados MySQL. Vale a pena experimentar qual configuração é melhor para o seu ambiente.

As etapas a seguir também são viáveis, mas envolvem hackear o arquivo principal do WordPress e, portanto, não são recomendadas e deixadas neste artigo apenas para referência.

Altere o diretório para wp-includes diretório. Dentro do diretório wp-includes, há wp-db.php Arquivo. Use qualquer editor de texto como o vi para editar wp-db.php. Pesquise ou localize a função de mysql_connect (ou @mysql_connect ). Existe apenas uma instância de mysql_connect. Basta alterar o mysql_connect para mysql_pconnect , salve e saia do wp-db.php.