Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Otimizando conexões entre PHP e MySQL
Linux user
Publicado por Fábio Berbert de Paula em 08/01/2003

Login: fabio, 6483258 pontos | Blog: https://twitter.com/fabiodovol
[ Hits: 10814 ]

Otimizando conexões entre PHP e MySQL

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.

Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Geração automática de menu drop down com banco de dados em PHP
   Dica Linux recomendada Instalar Apache, PHP, MySQL e PostgreSQL no Ubuntu Linux 8.10
   Dica Linux recomendada Compilando o PHP4 com acesso ao banco Interbase / Firebird no Conectiva 9
   Dica Linux recomendada Suporte PHP5 oci8 no Oracle 11g - Ubuntu 8.04 Server
   Dica Linux recomendada Como ver a saída de qualquer comando MySQL no PHP

Comentários
[1] Comentário enviado por GrupoFimdeprova em 09/08/2004 - 10:24h:

Isto é aconselhável para sites com média de 100 visitas diárias???
Não traria prejuízos de desempenho ao server???

[2] Comentário enviado por fabio em 11/08/2004 - 13:47h:

Olá,

Não traria problema algum, pode mandar bala!

[3] Comentário enviado por alphainfo em 09/11/2004 - 23:16h:

Ow Fábio,

será q essa função tem em todas as versões do PHP ou não?

[4] Comentário enviado por fabio em 10/11/2004 - 10:01h:

Olá Daniel, tem sim. Ela vem desde o PHP 3 se não me engano.

[]'s,
Fábio

[5] Comentário enviado por Ragen em 05/04/2005 - 19:25h:

Olá Fabio,

Quando por acaso a conexão seria finalizado usando esse metodo perssistente? Somente se fosse ordenado um *connection close*?

[6] Comentário enviado por fabio em 05/04/2005 - 21:34h:

Olá Ragen,

Retirado de:
http://br2.php.net/manual/pt_BR/function.mysql-pconnect.php

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()).

Mais sobre conexões persistentes:
http://br2.php.net/manual/pt_BR/features.persistent-connections.php

[]'s

[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. :(




[9] Comentário enviado por dit0 em 18/12/2007 - 19:42h:

Essa função serve tambem para scripts em php rodando diretamente no linux?


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.