elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Conexiones MySQL Persistentes ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Conexiones MySQL Persistentes ?  (Leído 4,123 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Conexiones MySQL Persistentes ?
« en: 20 Mayo 2016, 03:44 am »

Buenas...

Tengo un sitio en el cual estoy recibiendo algo de trafico y anteriormente mi forma de manejar las conexiones a MySQL tenian el procedimiento asi:

1) El script de conecta a la BDD.
2) Realiza la consulta (select, insert, update, etc...).
3) Cerraba la conexión.
4) Retornaba el resultado de la consulta.

Esto ahora veo me esta matando :'(... despues de cierto rato, noto que se alenta el sitio :'(, reinicio httpd y mysqld, y todo se normaliza.

Leyendo en internet encuentro con que se recomienda tener una conexion permanente y cerrar esta conexion cuando el usuario se vaya.

En mi caso, mi sitio es una plataforma que se muestra tras logearse, asi que intente esto (sin exito aun...).

funcion que conecta mysql
Código
  1. function conectar()
  2. {
  3. if( !($link= mysql_connect( "". SERVER. "", "". BASE_USR. "", "". BASE_PASS. "" )) )
  4. $link= "ERROR";
  5. else if( !mysql_select_db( "". BASE. "", $link ) )
  6. $link= "ERROR";
  7. return $link; # retornamos conexion
  8. }

Logeo y Desloqueo
Código
  1.  
  2. # cuando el usuario se LOGEA
  3. if( login($usuario, $pass) )
  4.          {
  5.          $_SESSION["log_id"]= get_datauser( "id", $user, $pass ); # nos da el ID
  6.          $_SESSION["mysql"]= conectar_bdd(); # retorna el ID de conexion
  7.          }
  8. else # no se logeo con exito
  9.          {
  10.          unset($_SESSION);
  11.          reloadpage( "/" ); # recarga pagina
  12.          }
  13.  
  14. # cuando el usuario se DESLOGEA
  15. if( !strcmp($_GET["log"], "out") )
  16.          {
  17.          mysql_close($_SESSION["mysql"]; # cerramos la conexion
  18.          unset($_SESSION);
  19.          session_destroy();
  20.          }

Como se observa la variable $_SESSION["mysql"] la seteo con el ID de la conexión para ese usuario, pero resulta que dicha variable no guarda o nose que sucede, que despues en cierta parte de mi codigo cuando consulto la variable, tiene un valor 0 (cero).

Tal vez la manera en como quiero solucionarlo esta mal, estoy dispuesto en leer sus recomendaciones :D

OJO: ya lei sobre mysql_pconnect(), pero no quiero usarla porque ya esta marcada como obsoleto en php.net

Saludos !


« Última modificación: 20 Mayo 2016, 03:46 am por Diabliyo » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Conexiones MySQL Persistentes ?
« Respuesta #1 en: 20 Mayo 2016, 04:58 am »

toda la entensión mysql está marcada como obsoleta, tienes que migrar a mysqli o pdo::mysql, si lees la advetencia de pconnect ahí te dice como hacer...

tu otra opción si tienes espacio de de disco y hosting es guardar la consulta en caché (si es la misma consulta repetidas veces)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Conexiones MySQL Persistentes ?
« Respuesta #2 en: 20 Mayo 2016, 06:10 am »

toda la entensión mysql está marcada como obsoleta, tienes que migrar a mysqli o pdo::mysql, si lees la advetencia de pconnect ahí te dice como hacer...

tu otra opción si tienes espacio de de disco y hosting es guardar la consulta en caché (si es la misma consulta repetidas veces)

Gracias engel lex por tus comentarios.

Si digamos me chute toda la recodificacion para cambiar de mysql a mysqli, y ya tenga todo listo y funcionando con mysqli mi preguntas son:

1) Cuando haga una consulta y antes haga una conexion, sera necesario llamar a la desconexion ?
2) Si NO llamo a la desconexion, pero al consultar esta por defecto manda llamar una conexion, la existente se retomaria ?
3) Es recomendable configurar las variables de "mysqli_max_persistent" y "mysqli_max_links" ???

OJO actualmente (como uso mysql), cada que termino una consulta, mando llamar: mysql_close(). Pero ahorita que tengo mas usuarios conectados y haciendo consultas, ya siento que el server llega a un punto donde se alenta :'(

Saludos !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una duda sobre conexiones remotas a MySQL
PHP
дٳŦ٭ 2 2,202 Último mensaje 24 Diciembre 2006, 04:24 am
por дٳŦ٭
[DUDA] Procesos Persistentes « 1 2 3 »
Programación Visual Basic
HJZR4 27 8,952 Último mensaje 13 Enero 2008, 19:46 pm
por nhaalclkiemr
[MySQL] Optimizar Conexiones mediante PHP ?
PHP
Diabliyo 2 3,995 Último mensaje 11 Febrero 2012, 00:26 am
por дٳŦ٭
Sobre TCP/IP conexiones persistentes, DUDA ?
Redes
TrashAmbishion 0 2,222 Último mensaje 16 Octubre 2016, 19:46 pm
por TrashAmbishion
Pregunta ¿Que tan seguro es usar conexiones MySql desde .net?
.NET (C#, VB.NET, ASP)
SrTrp 3 3,645 Último mensaje 5 Agosto 2017, 01:04 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines