Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Diabliyo en 9 Febrero 2012, 15:55 pm



Título: [MySQL] Optimizar Conexiones mediante PHP ?
Publicado por: Diabliyo en 9 Febrero 2012, 15:55 pm
Buen dia.

Traigo entre manos la duda de: Que es mas optimo ?: realizar una conexion a mysql por cada consulta o bien realizar una unica conexion y guardarla en sesion y utilizarla todo el tiempo ?

Cuando menciono de realizar una conexion a mysql por cada consultar me refiero a tener una funcion mas o menos asi:

Código:
function consultar($query)
          {
          $link= conectar_mysql();
          $consulta= mysql_query($query);
          mysql_close($link);
          return $consulta;
          }

O bien tener una unica conexion a la base de datos en sesion, algo asi:

Código:
if( !$_SESSION["dblink"] )
          $_SESSION["dblink"]= conectar_mysql();

Cual es mas optima ?, porque estoy empezando a recibir muchas visitas en mi sitio y esto me esta matando :(

Saludos !


Título: Re: [MySQL] Optimizar Conexiones mediante PHP ?
Publicado por: el-brujo en 9 Febrero 2012, 18:30 pm
Citar
Que es mas optimo ?: realizar una conexion a mysql por cada consulta o bien realizar una unica conexion y guardarla en sesion y utilizarla todo el tiempo ?

Suele ser más óptimo lo segundo, pero también consume más recursos.

Se llama "persistent connection"

http://es.php.net/mysql_pconnect

mysql.allow_persistent

Citar
porque estoy empezando a recibir muchas visitas en mi sitio y esto me esta matando

De todas maneras usando pmysql no vas a notar nada. Te recomiendo usar un cacheador de scripts php, tipo APC.

APC (Alternative PHP Cache)
http://pecl.php.net/package/APC

Optimizar LAMP
http://foro.elhacker.net/gnulinux/optimizar_lamp-t341795.0.html

Herramientas para Optimizar MySQL
http://foro.elhacker.net/tutoriales_documentacion/herramientas_para_optimizar_mysql-t214396.0.html


Título: Re: [MySQL] Optimizar Conexiones mediante PHP ?
Publicado por: дٳŦ٭ en 11 Febrero 2012, 00:26 am
Yo te recomendaría la persistente o eAccelerator o ambas, es cuestión de hacer pruebas de estrés y ahí te darás cuenta. Saludos