Geralmente os programadores
utilizam a função mysql_connect() para conectar seu script PHP
à uma base de dados do MySQL. Para otimizar esta conexão, basta
substituir a função por mysql_pconnect()1, que recebe os
mesmos parâmetros, porém com duas diferenças sutis e eficazes:
ao abrir conexão com o MySQL, o PHP irá procurar por algum link
persistente previamente aberto com o SGBD2,
este link
possuirá o mesmo host, usuário e senha. Se este for encontrado,
será o escolhido pelo programa ao invés de tentar abrir nova
conexão.
a conexão com o MySQL não será fechada ao término da execução
do script, de forma que próximos usuários possam desfrutar da
mesma.
Conexões persistentes são muito aconselháveis para websites ou intranets
de alto tráfego.
Nota 1: funções para outros SGBD's também possuem suas
similares para conexões persistentes. Consulte o guia de referência do PHP
para maiores informações (www.php.net).
Nota 2: SGBD vem de Sistema de Gerenciamento de Banco de Dados,
categoria de software onde se encaixam MySQL, PostGreSQL, Oracle, Infomix,
MS SQL Server, etc.
mysql_pconnect() age muito parecido com mysql_connect() com duas maiores diferenças.
Primeira,ao conectar, a função primeiro irá tentar encontrar um conexão persistente que já esteja aberta com o mesmo servidor, nome de usuário e senha. Se uma é encontrada, um identificador para ela será retornada ao invés de abrir uma nova conexão.
Segundo, a conexão com o servidor SQL não será fechada quando termina a execução do script. Ao invés, a conexão continuará aberta para uso futuro (mysql_close() não irá fechar conexões abertas por mysql_pconnect()).
[7] Comentário enviado por pauloshiga em 16/07/2006 - 08:51h
Meu antigo host tinha o limite ridículo de 20 no "max_user_connections". Se atingisse 21 conexões no MySQL, dava erro e o site ficava fora do ar. Quem assina alguma hospedagem e tem esse limite, o jeito é usar mysql_connect() mesmo...
[8] Comentário enviado por neovictor em 06/08/2007 - 16:06h
^^ É sim...
Infelizmente o pconnect só dá mais problemas do que "otimiza".
Se vc tiver uma hospedagem só sua que possa configurar à vontade as opções, talvez melhore a performance, mas esse detalhe de não fechar a conexão irá atrapalhar outras conexões de outros visitantes, dando erro na página, o que vai ser uma grande dor de cabeça.
O pconnect na verdade diminui o número de usuários possíveis usando, diminui a carga máxima do sistema. :(