Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cristian Göhl

Conexão Persistente

Recommended Posts

Bom dia,

 

tenho uma aplicação em FLEX, PHP, MYSQL.

 

está rodando normal, mas fazendo testes locais,

 

utilizei o MySQL Workbench no modo de Administração.

 

Visualizei que depois de 5 horas utilizando o sistema, eu tinha 8 ou 9 conexões, sendo praticamente todas ociosas.

 

estou fazendo a conexão com mysql_pconnect, pelo que sabia a respeito, o mesmo verifica se existe uma conexão igual(host,user,password).

 

ou seja, deveria ter apenas 1 conexão, fiz o teste local, apenas eu acessando.

 

function abrir()
{
$this->conn = mysql_connect($this->host, $this->user, $this->pass);
mysql_select_db($this->db, $this->conn);
}

 

Ainda não tive problemas de limite de conexões, e nem testei na quente,

 

local fiz teste no windows 7,64sp1.

utilizando pacote XAMPP, o mysql 5.1.X

PHP 5.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O funcionamento das conexões depende também das configurações do Apache e do MySQL. A única diferença entre 'connect' e 'pconnect' é que 'pconnect' verifica antes de criar outra conexão se já não existe uma ativa.

 

Geralmente nem há diferença entre se usar uma ou outra pois em ambas as conexões são finalizadas apos se usar mysql_close() ou quando a execução do script terminar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tive alguns problemas com pconnect.

Aqui tem algumas sugestões para melhorar/resolver problemas com número máximo de conexões:

 

http://php.net/manual/en/function.mysql-pconnect.php (leia nos comentários).

 

A própria documentação sugere ajustes no Apache e configurações do MySQL:

 

Using persistent connections can require a bit of tuning of your Apache and MySQL configurations to ensure that you do not exceed the number of connections allowed by MySQL.

 

Recomendo ler também os links abaixo:

 

http://www.php.net/manual/en/features.persistent-connections.php

http://www.mysqlperformanceblog.com/2006/11/12/are-php-persistent-connections-evil/

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geralmente nem há diferença entre se usar uma ou outra pois em ambas as conexões são finalizadas apos se usar mysql_close() ou quando a execução do script terminar.

 

Conexões persistentes não são fechadas usando a função mysql_close e muito menos quando termina a execução do script, caso contrário não seriam persistentes.

 

@Cristian Göhl,

 

Prefira sempre utilizar conexões não-persistentes, pois as conexões persistentes nem sempre funcionam como o esperado e, como você bem notou, vão acumulando um monte de conexões ociosas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifiquei no servidor onde está hospedado e lá não acumula conexões, verifiquei nos processos do phpmyadmin.

 

Vou ver se realmente altero para connect e depois fecho, agora fiquei na dúvida, pois lá(linux, mysql 5.0.92) está funcionando de acordo, ou ao menos parece.

 

Vou testar novamente no windows, agora estou no ubuntu, dai vejo no phpmyadmin e no MySql Workbeanch, e deixo postado aqui.

 

@hufersil

 

eu tinha anotado isto já:

 

$dbConnection = mysql_pconnect( $myHostname, $myUsername, $myPassword  );

if ( !mysql_ping( $dbConnection ) )
{
  $dbConnection = mysql_pconnect( $myHostname, $myUsername, $myPassword  );
}

 

Reparei que algumas requisições, constam no connect como 0ms outras 200ms(firebug->Rede), então acredito eu, que tenho um ganho com o pconnect.

 

vou ler esse este ultimo link que você me encaminhou, os do php.net eu já tinha visto, sempre encontrei a mesma coisa, as mesmas informações,

 

ficou a dúvida sobre o ganho, para ele não gastar os 200ms na conexão, mas no fim terá um gasto para buscar a conexão, vou ter que testar novamente e analizar,

 

quando ver nem se torna mais eficiente.

 

se poder me deixar a sua opinião sobre essa questão, agradeço.

 

Obrigado a todos que responderam, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.