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 存在同样的问题。

相关文章

优化使用mysql存储session的php代码

之前写过两篇文章《自定义SESSION(二)——数据库保存》和《我为什么不使用session》   但后来发现都有问题。前者处理在实际中几乎没什么用处,而且sessi...

PHP数据库连接mysql与mysqli对比分析

一、mysql与mysqli的概念相关 1、mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。 2、在php5版本之前,一般是用php的mysql函数去驱动my...

PHP查询MySQL大量数据的时候内存占用分析

昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于MySQL查询返回的结果太多(达10万条), 从而导致PHP内存不够用. 所以, 他问, 在执行下面的代码遍历返回的MySQL结果...

让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X

让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X

作为一名PHP+MYSQL(其它数据库)程序员,你可能为了满足不同的需求,而需要在不同的数据库版本的环境中进行测试 但正常的安装MYSQL,windows系统中只能存在一个版本的MYSQ...

PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID

前言 最近在工作中又遇到了这个问题,PHP中如何获得刚插入数据的ID(或当前发布文章的ID)呢?觉得有必要整理下详细的解决方法,方便自己也给有需要的朋友们提供以帮助,那么话不多说了,来看...