Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

yipeiwu_com6年前Mysql基础

对比下面两个脚本的速度:

  • Windows 7 用 localhost 连接本地 MySQL,速度会很慢。
  • Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的。

my.ini里配置了

bind-address=127.0.0.1

 用localhost连接本地MySQL: 速度慢

<?php
$start = microtime(true);
$mysqli = new mysqli('127.0.0.1', 'root', '', 'mysql'); //连接耗时仅为0.0025秒.
//$mysqli = new mysqli('localhost', 'root', '', 'mysql'); //连接耗时超过1秒,比正常慢了400倍.
echo microtime(true) - $start;

分析:
1.my.ini里配置

bind-address=127.0.0.1

时,Win7及其以上版本系统PHP用localhost连接MySQL耗时超过1秒,比用127.0.0.1连接慢了400倍.
2.my.ini里配置

bind-address=::1

时,Win7及其以上版本系统PHP用localhost连接MySQL速度是正常的,但用127.0.0.1连接又不正常了.
3.去掉bind-address配置,则用localhost或127.0.0.1连接MySQL速度都是正常的.

所以:在配置了

bind-address=127.0.0.1 

的情况下,应该使用 127.0.0.1 连接本地 MySQL 数据库 。
安装 WordPress、phpMyAdmin 等 PHP 程序的时候默认使用 localhost 连接本地 MySQL 数据库,这时注意把默认的 localhost 改为 127.0.0.1。

另外,Windows 2008、2012 跟 Windows 7 存在同样的问题。

相关文章

PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法

本文实例讲述了PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法。分享给大家供大家参考,具体如下: 这是一段简单的代码,可实现统计该数据库中每个表的记录数,并按递减顺序排列...

PHP调用MySQL存储过程并返回值的方法

本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考。具体分析如下: 调用存储过程的方法. a。如果存储过程有 IN/INOUT参数,声明一个...

一家之言的经验之谈php+mysql扎实个人基本功

一. 10句话 1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的...

php中选择什么接口(mysql、mysqli)访问mysql

我们知道,mysqli是PHP 5中新提供的MySQL接口,此接口使用了面向对象的思想。使用mysqli接口的代码可读性更强,其执行效率比mysql接口高。而且mysqli提供了一个能够...

小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法第1/3页

乱码产生原因  mysql字符编码是版本4.1引入的,支持多国语言,而且一些特性已经超过了其他的数据库系统。 我们可以在MySQL Command Line...