2010-03-14 18 views
6

Se si dispone di uno script che inserisce i dati, viene chiuso, , lo script verrà aperto da 100 utenti allo stesso tempo o entro 2 minuti.php pconnect vs connect

(In realtà io sto facendo il monitoraggio e-mail.)

Così pconnect è meglio, o Connect è meglio per ridurre la risorsa?

Ho chiuso quando dopo l'inserimento.

+0

Possibile duplicato di [mysql \ _connect VS mysql \ _pconnect] (http://stackoverflow.com/questions/247807/mysql-connect-vs-mysql-pconnect) – rubo77

risposta

4

mysql_pconnect() rilascia la connessione aperta in un pool che può essere utilizzato da qualsiasi altra richiesta per lo stesso processo. In quanto tale, ogni lavoratore mantiene aperta la connessione fino alla sua morte. Questo può essere accettabile se si mantiene basso il numero di lavoratori, ma non appena si aumenta il numero di lavoratori, è meglio passare a mysql_connect(). Ci vorrà un po 'più tempo per richiesta poiché la connessione deve essere fatta ogni volta, ma creerai tante connessioni quante sono le richieste, non i lavoratori.

+1

sì, il mio script è solo per richiesta, quindi se ho più di 1000 ppl per aprire lo script ed eseguirlo tra 5 minuti, è meglio usare mysql_connect? – user192344

+1

Se ci sono 1000 persone in 5 minuti e lo script richiede in media 100ms, si tratta in media di 0,3 utenti contemporanei, che probabilmente è possibile gestire con il computer incorporato nel microonde. – Evert

2

connect utilizza meno risorse (le istanze inattive del server Web non devono mantenere aperta una connessione al database), ma pconnect è leggermente più veloce (non è necessario aprire una nuova connessione, è già lì).

+0

quindi se hai bisogno di meno risorse, meglio usare connect? dato che mi preoccupo di aprire molte connessioni – user192344

+0

sì che è corretto .. – user262976

+1

"leggermente più veloce" cosa significa? noteresti la differenza se avessi 1000 richieste? – rubo77

0

Se si utilizza pconnect, si avrà un sacco di connessioni in modalità SLEEP con questo tipo di script che viene eseguito 100 volte in 2 minuti e il tuo mysql morirà.

È possibile utilizzare mysql_connect() , mysql_close()

-1

mysql_pconnect(): è la connessione permanente con il database. non puoi perdere la connessione mentre questo tipo di operazione.

mysql_connect(): è per connettersi al database in modo normale utilizzando un po 'di tempo a causa del gran numero di operazioni che si potrebbero perdere la connessione.

Suggerisco mysql_pconnect() per la connessione al database.

+0

Non esiste una cosa come permanente quando si tratta di una connessione al database. "p" in pconnect è sinonimo di persistente; la connessione stessa non viene rilasciata quando termina la gestione della richiesta (o quando il lavoratore muore). AFAIK, questo è rilevante solo in un contesto webserver. –