C'è qualche ragione per cui dovrei chiudere la connessione dopo una query o alla fine dello script?Perché usare mysqli_close()?
Quali sono i vantaggi di fare/non fare fare?
C'è qualche ragione per cui dovrei chiudere la connessione dopo una query o alla fine dello script?Perché usare mysqli_close()?
Quali sono i vantaggi di fare/non fare fare?
La connessione (se non persistente) è sempre chiusa alla fine dello script, quindi, in teoria, non è necessario chiuderlo da soli.
Tuttavia, se lo script PHP impiega molto tempo per essere eseguito, è una buona idea chiudere la connessione quando non è più necessario fare alcuna richiesta al database - almeno, se i lunghi calcoli sono fatti dopo le domande.
Ciò è particolarmente vero se la tua applicazione è distribuita su un hosting condiviso: il tuo account utente in genere può avere solo poche connessioni aperte contemporaneamente. (Quel numero di connessioni aperte simultaneamente può essere piuttosto piccolo su hosting condiviso, in genere è maggiore nei server privati).
La ragione per cui spesso non chiudere le connessioni ourselfves è:
Ogni volta che non si chiudono le connessioni, un DBA uccide un gattino. – Eric
Ogni volta che non chiudo una connessione, PHP fa il lavoro per me: -p PHP salva i gattini! ;; in realtà, quello che ho detto con la pagina fatta di blocchi è del tutto vero: pensa a qualsiasi CMS, ad esempio: quando sai la connessione dovrebbe essere chiusa? Alla fine dell'esecuzione del codice PHP (non prima, dato che alcuni "blocchi" potrebbero ancora avere bisogno di fare qualche query SQL) ;; quindi, chiudere la connessione a mano è abbastanza inutile ... ;;; tranne, ovviamente, quando si genera qualcosa che richiede tempo e non esegue alcuna query DB, come un PDF o qualcosa del genere. –
Il vantaggio è che se si sta eseguendo un'elaborazione di lunga durata ma si è terminato di eseguire query sul database, non è possibile mantenere aperta una connessione. Lo stesso vale per tenere aperta la sessione utente (che blocca altre richieste).
Un esempio potrebbe essere la creazione di un report PDF di grandi dimensioni. Questo potrebbe richiedere 20-30 + secondi per creare e scrivere il file, ma avrai tutti i dati necessari nel primo secondo.
In genere, tuttavia, si può anche farlo automaticamente (presupponendo che la connessione non sia persistente).
Che cos'è la connessione permanente? 'mysqli (MYSQL_HOSTNAME, USERNAME, PASSWORD, DATABASE);' è persistente? – Tahtakafa
Diversamente dall'estensione mysql, mysqli non fornisce una funzione separata per l'apertura di connessioni permanenti. Per aprire una connessione persistente è necessario anteporre p: al nome host al momento della connessione. – Tarik
Se parli di script PHP, posso suggerire di aggiungere quel tag alla tua domanda? –
Dupe: http://stackoverflow.com/questions/880885/close-mysql-connection-important e related: http://stackoverflow.com/questions/336078/php-mysql-when-is-the-best-time -disconnect-from-the-database – karim79