技术文章
当前位置:首页 > PHP编程文章 > Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

Windows Server 2008 R2和2012中PHP连接MySQL过慢的原因

  • 发布时间:
  • 作者:码农之家原创
  • 点击:76

这篇文章主要知识点是关于PHP、MySQL、Windows、php连接MySQL的两种方式对比 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP+MySQL程序设计及项目开发
  • 类型:PHP+MySQL大小:105.1MB格式:PDF出版:北京理工大学出版社作者:郑广成,朱翠苗
立即下载

更多PHP相关的学习资源可以参阅 PHP电子书程序设计电子书 等栏目。

Windows Server 2008 R2和2012中PHP连接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的两种方式。

先mock一下数据,可以执行一下sql。

/*创建数据库*/
CREATE DATABASE IF NOT EXISTS `test`;
/*选择数据库*/
USE `test`;
/*创建表*/
CREATE TABLE IF NOT EXISTS `user` (
  name varchar(50),
  age int
);
/*插入测试数据*/
INSERT INTO `user` (name, age) VALUES('harry', 20), ('tony', 23), ('harry', 24);

第一种是使用PHP原生的方式去连接数据库。代码如下:

<?php
$host = 'localhost';
$database = 'test';
$username = 'root';
$password = 'root';
$selectName = 'harry';//要查找的用户名,一般是用户输入的信息
$connection = mysql_connect($host, $username, $password);//连接到数据库
mysql_query("set names 'utf8'");//编码转化
if (!$connection) {
  die("could not connect to the database.\n" . mysql_error());//诊断连接错误
}
$selectedDb = mysql_select_db($database);//选择数据库
if (!$selectedDb) {
  die("could not to the database\n" . mysql_error());
}
$selectName = mysql_real_escape_string($selectName);//防止SQL注入
$query = "select * from user where name = '$selectName'";//构建查询语句
$result = mysql_query($query);//执行查询
if (!$result) {
  die("could not to the database\n" . mysql_error());
}
while ($row = mysql_fetch_row($result)) {
  //取出结果并显示
  $name = $row[0];
  $age = $row[1];
  echo "Name: $name ";
  echo "Age: $age ";
  echo "\n";
}

其运行结构如下:

Name: harry Age: 20
Name: tony Age: 23
第二种是使用PDO的方式去连接数据库,代码如下:

<?php
$host = 'localhost';
$database = 'test';
$username = 'root';
$password = 'root';
$selectName = 'harry';//要查找的用户名,一般是用户输入的信息
$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);//创建一个pdo对象
$pdo->exec("set names 'utf8'");
$sql = "select * from user where name = ?";
$stmt = $pdo->prepare($sql);
$rs = $stmt->execute(array($selectName));
if ($rs) {
  // PDO::FETCH_ASSOC 关联数组形式
  // PDO::FETCH_NUM 数字索引数组形式
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $name = $row['name'];
    $age = $row['age'];
    echo "Name: $name ";
    echo "Age: $age ";
    echo "\n";
  }
}
$pdo = null;//关闭连接

其结果与第一种相同。

以上所述就是本文的全部内容了,希望能够对大家熟练掌握mysql有所帮助。

以上就是本次给大家分享的关于PHP的全部知识点内容总结,大家还可以在下方相关文章里找到PHP实现的微信公众号及网、 PHP异常和错误的日志记录、 php微信公众号里快递查询、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:php表单微信中自动提交两次问题的解决办法

下一篇:php中curl实现的股票信息查询的实例详解

展开 +

收起 -

PHP连接MySQL 相关电子书
学习笔记
网友NO.666576

PHP使用mysqli扩展连接MySQL数据库

1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '123456', 'dbname'); 如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库 $db-select_db('dbname');$query = "SELECT * FROM user WHERE uid=4";$result = $db-query($query);$result_num = $result-num_rows;$row = $result-fetch_assoc(); //返回一个关联数组,可以通过$row['uid']的方式取得值$row = $result-fetch_row(); //返回一个列举数组,可以通过$row[0]的方式取得值$row = $result-fetch_array(); //返回一个混合数组,可以通过$row['uid']和$row[0]两种方式取得值$row = $result-fetch_object(); //返回一个对象,可以通过$row-uid的方式取得值$result-free(); //释放结果集$db-close(); //关闭一个数据库连接,这不是必要的,因为脚本执行完毕时会自动关闭连接 当进行INSERT、UPDATE、DELETE操作时,使用$db-affected_rows查看影响行数 2.面向过程的使用方式 $db = mysqli_connect('localh……

网友NO.332389

thinkphp3.x连接mysql数据库的方法(具体操作步骤)

本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下: 惯例配置文件:ThinkPHP/conf/convention.php (1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”): 示例: ?phpreturn array( //'配置项'='配置值' /* 数据库设置 */ 'DB_TYPE' = 'mysql', // 数据库类型 'DB_HOST' = 'localhost', // 服务器地址 'DB_NAME' = 'xmall', // 数据库名 'DB_USER' = 'root', // 用户名 'DB_PWD' = '123', // 密码 'DB_PORT' = '3306', // 端口 'DB_PREFIX' = 'think_', // 数据库表前缀 'DB_FIELDTYPE_CHECK' = false, // 是否进行字段类型检查 'DB_FIELDS_CACHE' = true, // 启用字段缓存 'DB_CHARSET' = 'utf8', // 数据库编码默认采用utf8);? (2)创建表: CREATE TABLE `think_user` ( `id` int(11) DEFAULT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(20) DEFAULT NULL) ENGINE=InnoDB; (3) 执行数据插入操作在lib/Action下修改IndexAction.class.php文件,内容如下:……

网友NO.344347

PHPExcel导入Excel表格到MySQL数据库的简单实例详解

如下所示: ?phpdefine(BASE_URL, realpath(dirname(__FILE__)));require_once BASE_URL . /PHPExcel/PHPExcel.php;//引入PHPExcel类文件//excel文件的地址$excel_fiel_path = ./phpexcel.xls;$PHPExcel = new PHPExcel();// 实例化PHPExcel工具类//分析文件获取后缀判断是2007版本还是2003$extend = pathinfo(./ . $excel_fiel_path);$extend = strtolower($extend[extension]); // 判断xlsx版本,如果是xlsx的就是2007版本的,否则就是2003if ($extend==xlsx) { $PHPReader = new PHPExcel_Reader_Excel2007(); $PHPExcel = $PHPReader-load(./ . $excel_fiel_path);}else{ $PHPReader = new PHPExcel_Reader_Excel5(); $PHPExcel = $PHPReader-load(./ . $excel_fiel_path);} /* 第二种方法*/$objWorksheet = $PHPExcel-getActiveSheet();$highestRow = $objWorksheet-getHighestRow(); echo highestRow=.$highestRow;echo br;$highestColumn = $objWorksheet-getHighestColumn();$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数echo highestColumnIndex=.$highest……

网友NO.100611

Mac OS下PHP环境搭建及PHP操作MySQL常用方法小结

Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro (官方网站:https://www.mamp.info/en/)软件来搭建本地服务器。安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点。 mac系统下安装php,两行即可。 brew tap josegonzalez/homebrew-phpbrew install php54 安装完后配置一下,你就可以使用phpstorm来愉快地编程啦。安装的php路径在/usr/local/bin/php 数据库基本操作 1)用户的 Web 浏览器发出 HTTP 请求,请求特定 Web 页面。 2)Web服务器收到.php 的请求获取该文件,并将它传到 PHP 引擎,要求它处理。 3)PHP 引擎开始解析脚本。 脚本中有一条连接数据库的命令, 还有执行一个查询的令。命 PHP 打开通向 MYSQL 数据库的连接,发送适当的查询。 4)MYSQL 服务器接收数据库查……

网友NO.329530

Windows下php+mysql5.7配置教程

WINDOWS 下 PHP+MYSQL配置 下载mysql 地址:https://dev.mysql.com/downloads/ 点击Community 点击DOWNLOAD 选择下载的版本 点击 No thanks, just start my download. 下载得到mysql-5.7.18-winx64.zip 解压到C盘根目录,并改名为mysql57,进入mysql57,新建txt文件,改名为my.ini,打开该文件,添加下列配置信息。 [mysqld]#mysql根目录basedir=C:\mysql57#data数据存放的目录datadir=C:\mysql57\data#mysql占用的端口port=3306 保存退出 进入bin,按住shift键点击鼠标右键,选择在当前位置打开命令窗口。 输入下面的代码初始化数据库 mysqld --initialize --user=mysql --console 初始化成功后,会给root账号生成一个随机密码,显示在最后面,12位字符,记得保存下来 输入下面代码,安装mysql服务 mysqld --install MYSQL 显示下面图片则安装成功 输入下面代码,启动mysql C:\Windows\System32\net start mysql 显示下面图片则启动成功 输入下面代码,……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息