2010-11-30 5 views
0

Dire que j'ai très standard code de connexion mysql:Quelle est la vitesse typique que PHP connecte à MySQL?

$dbhost = '192.168.1.99'; 
$dbuser = 'dbuser'; 
$dbpass = 'dbuserpass'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); 
$dbname = 'mydb'; 
mysql_select_db($dbname); 

Ce relierait à partir du serveur Web au serveur de base de données (par exemple le serveur web est à 192.168.1.98 ou quelque chose). En général, combien de temps le code ci-dessus va-t-il fonctionner? Actuellement, je vois environ 2 secondes. Est-ce lent?

+0

Comment mesurez-vous le temps de connexion? Etes-vous sûr que c'est la partie mysql qui est lente, pas quelque chose d'autre (par exemple si vous rendez une page web aussi). Aussi, s'il vous plaît, pour l'amour de Dieu, arrêtez d'utiliser la vieille bibliothèque mysql. Il doit mourir rapidement et avec miséricorde. PDO ou, si vous le devez, mysqli, est une meilleure approche. –

+0

J'utilise microtime pour obtenir le temps avant et après la connexion. Le code est juste pour la démonstration. S'il vous plaît gardez à l'esprit que j'essaie seulement de me connecter au serveur, rien de plus. – shady

+0

J'ai gardé cela à l'esprit, je voulais juste vérifier que vous mesuriez la bonne chose :) Voir ma réponse ci-dessous. –

Répondre

2

Une possibilité est que mysql effectue une recherche DNS pour trouver le nom du serveur de connexion; Selon votre configuration, cela pourrait prendre beaucoup de temps. Il n'y a pas vraiment d'avantage à cela, mis à part le fait de pouvoir spécifier les utilisateurs par nom d'hôte plutôt que par adresse IP (par exemple @example.com plutôt que user @192.168.1.1).

Ceci peut être désactivé dans la configuration ou lors du démarrage de MySQL avec le paramètre --skip-name-resolve. Plus d'informations sont disponibles on the MySQL site.

+0

Je vais ajouter ce drapeau et voir ce qui se passe. Merci pour l'info. – shady

+0

J'ai ajouté ce drapeau et mon temps de connexion est passé de 2 secondes à 7,7 ms. Merci. – shady

+0

De rien. Vous pourriez vouloir regarder comment votre DNS fonctionne sur le serveur cependant; ceci indique qu'il y a aussi une sorte de problème de DNS, sinon les choses seraient encore rapides. –

1

2 secondes semblent lentes, mais cela dépend de votre serveur et de votre serveur de base de données. Selon ce qu'ils font d'autre, où ils sont situés et de nombreux autres facteurs, il pourrait être rapide.

Je reçois habituellement des temps de moins d'une seconde.

0

Avez-vous beaucoup de tables? Il peut être passer du temps à regarder autour après la connexion. La ligne de commande mysql client est-elle trop lente? Est-ce rapide si vous vous connectez depuis localhost?

+0

Il ne devrait pas y avoir d'analyse des tables lorsque vous vous connectez à la base de données. Je cours un site Web avec des centaines de tables sur un serveur MySQL distant et je n'ai jamais remarqué de retard comme celui-ci. – GolezTrol

0

C'est très lent. Sur les sites Web avarage, la page entière s'affiche dans les deux secondes. C'est-à-dire, la connexion à la base de données, l'exécution des requêtes, la récupération des résultats et le rendu de la page.

1

Pour un réseau LAN local, à moins que vous n'utilisiez un équipement vétuste, ou que quelque chose ne fonctionne pas, il devrait normalement être de l'ordre de (a) milliseconde (s).

Questions connexes