2012-03-21 18 views
34

Sto usando PDO nella mia applicazione PHP. Si collega a un server MySQL sullo stesso server:Perché la connessione PDO è lenta?

$db = new PDO(mysql:host=localhost;dbname=test, $username, $password); 

ho creato due pagine con la stessa uscita (solo alcuni dati fittizi in semplice HTML), uno dei quali contiene la chiamata per creare DOP. Se apro la pagina che non utilizza alcuna connessione, la risposta è tra 0,5 e 1 secondo più veloce.

+0

Come si ottengono i dati da un database senza una connessione? – deceze

+0

I dati fittizi sono solo un semplice codice HTML, niente dal database. –

+1

Questo effetto non è normale. Sembra che tu abbia problemi relativi al server. Forse il server SQL è lento a rispondere. Cerca di investigare di più, ma a me sembra più un problema di ServerFault. –

risposta

77

Ho fatto qualche ricerca su google, e dopo aver letto this thread, ho cambiato localhost in 127.0.0.1. Questo risolve il problema ...

+2

Hai fatto la mia giornata! Usando localhost ci volle un intero secondo per connettersi, usando 127.0.0.1 ci vuole circa un millisecondo. – CodeZombie

+1

Ricerca molto utile. Ho cercato di trovare la soluzione finché questo non mi ha aiutato. Sceso da 1 a meno di 3 ms. –

+8

Un po 'perché: Usando un nome host, PHP è costretto a fare una ricerca nella tabella DNS (lento!). Se questa è una tabella grande, può richiedere molto tempo prima che la voce venga trovata. Utilizzando un indirizzo IP statico è possibile saltare completamente questa risoluzione. Puoi anche farlo in produzione con IP non localhost! – Gerben

Problemi correlati