2010-03-14 18 views
6

Si tengo una secuencia de comandos que inserta datos y luego sale, la secuencia de comandos se abrirá por 100 usuarios al mismo tiempo o dentro de los 2 minutos.php pconnect vs connect

(En realidad, yo estoy haciendo el seguimiento de correo electrónico.)

Así pconnect es mejor, o Conexión es mejor para reducir el recurso?

Tengo cerca cuando después de la inserción.

+0

Posible duplicado de [mysql \ _connect VS mysql \ _pconnect] (http://stackoverflow.com/questions/247807/mysql-connect-vs-mysql-pconnect) – rubo77

Respuesta

4

mysql_pconnect() descarta la conexión abierta en un grupo que puede ser utilizada por cualquier otra solicitud para el mismo proceso. Como tal, cada trabajador mantiene la conexión abierta hasta que muera. Esto puede ser aceptable si mantiene baja la cantidad de trabajadores, pero tan pronto como aumente el número de trabajadores, es mejor que se cambie al mysql_connect(). Tardará un poco más de tiempo por solicitud, ya que la conexión se tiene que hacer cada vez, pero solo creará tantas conexiones como solicitudes, no trabajadores.

+1

Sí, mi script es solo para solicitud, por lo tanto, si Tengo más de 1000 personas que abren el script y lo ejecutan entre 5 minutos, ¿es mejor usar mysql_connect? – user192344

+1

Si hay 1000 personas en 5 minutos, y su secuencia de comandos tarda 100 ms en promedio, ese es 0.3 usuarios simultáneos en promedio, que es algo que probablemente pueda manejar con la computadora que está incrustada en su horno de microondas. – Evert

2

connect utiliza menos recursos (las instancias inactivas del servidor web no necesitan mantener abierta una conexión de base de datos), pero pconnect es ligeramente más rápido (no tiene que abrir una nueva conexión, ya está allí).

+0

así que si necesita menos recursos, mejor usar connect? porque me preocupa abrir muchas conexiones – user192344

+0

sí, eso es correcto .. – user262976

+1

"ligeramente más rápido" ¿qué significa esto? notarías la diferencia si comienzas 1000 solicitudes? – rubo77

0

Si utiliza pconnect, que tendrá una gran cantidad de conexiones en modo SLEEP con este tipo de script que se ejecuta 100 veces en 2 minutos y tu mysql morirá.

Puede utilizar mysql_connect() , mysql_close()

-1

mysql_pconnect(): es una conexión permanente con la base de datos. no puedes perder tu conexión mientras ese tipo de operación.

mysql_connect(): es para conectar la base de datos de manera normal usando algo de tiempo debido a la gran cantidad de operaciones que puede perder su conexión.

Sugiero mysql_pconnect() para la conexión a la base de datos.

+0

No existe una conexión permanente a la base de datos. "p" en pconnect significa persistente; es decir, la conexión en sí no se elimina cuando finaliza el tratamiento de la solicitud (o cuando el trabajador fallece). AFAIK, esto es relevante solo en un contexto de servidor web. –