php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例

 更新时间:2019年05月09日 11:01:17   作者:Yxh_blogs  
这篇文章主要介绍了php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率,结合完整实例形式对比分析了php分别使用mysqli与pdo进行数据库插入操作的执行时间,需要的朋友可以参考下

本文实例讲述了php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率。分享给大家供大家参考,具体如下:

<?php
/**
 * 测试pdo和mysqli的执行效率
 */
header("Content-type:text/html;charset=utf-8");
//通过pdo链接数据库
$pdo_startTime = microtime(true);
$pdo = new PDO("mysql:host=localhost;dbname=test","root","1234",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"));
for($i=1;$i<=100;$i++){
  $title = "pdo标题".$i;
  $content = "pdo内容".$i;
  $addtime = time();
  $user_id = $i;
  $pdo_sql = "INSERT INTO `article`(`title`,`content`,`addtime`,`user_id`) VALUES(:title,:content,:addtime,:user_id)";
  $sth = $pdo->prepare($pdo_sql);
  $sth->bindParam(':title',$title);
  $sth->bindParam(':content',$content);
  $sth->bindParam(':addtime',$addtime);
  $sth->bindParam(':user_id',$user_id);
  $sth->execute();
}
$pdo_endTime = microtime(true);
$pdo_time = $pdo_endTime - $pdo_startTime;
echo $pdo_time;
echo "<hr/>";
//通过mysql链接数据库
$mysqli_startTime = microtime(true);
$mysqli = mysqli_connect("localhost","root","1234","test") or die("数据连接失败");
mysqli_query($mysqli,"set names utf8");
for($i=1;$i<=100;$i++){
  $title = "mysqli标题".$i;
  $content = "mysqli内容".$i;
  $addtime = time();
  $user_id = $i;
  $sql = "INSERT INTO `article`(`title`,`content`,`addtime`,`user_id`) VALUES('".$title."','".$content."',".$addtime.",".$user_id.")";
  mysqli_query($mysqli,$sql);
}
$mysqli_endTime = microtime(true);
$mysqli_time = $mysqli_endTime - $mysqli_startTime;
echo $mysqli_time;
echo "<hr/>";
if($pdo_time > $mysqli_time){
  echo "pdo的执行时间是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{
  echo "mysqli的执行时间是pdo的".round($mysqli_time/$pdo_time)."倍";
}

测试结果:其实经过多次测试,pdo和mysqli的执行效率差不多。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP原型模式Prototype Pattern的使用介绍

    PHP原型模式Prototype Pattern的使用介绍

    这篇文章主要介绍了PHP原型模式Prototype Pattern的使用,原型模式是一种创建型模式,它可以通过复制现有对象来创建新的对象,而无需知道具体的创建过程
    2023-03-03
  • ThinkPHP5中Request请求对象大全

    ThinkPHP5中Request请求对象大全

    ThinkPHP5可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息,如果要获取当前的请求信息,可以使用\think\Request类
    2024-08-08
  • PHP操作Postgresql封装类与应用完整实例

    PHP操作Postgresql封装类与应用完整实例

    这篇文章主要介绍了PHP操作Postgresql封装类,结合实例形式分析了php针对Postgresql数据库常见的连接、查询、统计等操作封装技巧与使用方法,需要的朋友可以参考下
    2018-04-04
  • fleaphp crud操作之findByField函数的使用方法

    fleaphp crud操作之findByField函数的使用方法

    fleaphp crud操作之findByField函数的用法分享,需要的朋友可以参考下。
    2011-04-04
  • php+mysql实现无限分类实例详解

    php+mysql实现无限分类实例详解

    这篇文章主要介绍了php+mysql实现无限分类的方法,实例分析了mysql数据库设计、数据库操作及无限极分类的具体实现步骤,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • php PDO判断连接是否可用的实现方法

    php PDO判断连接是否可用的实现方法

    下面小编就为大家带来一篇php PDO判断连接是否可用的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示

    解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds

    最近做的程序中涉及到的循环比较多且处理的情况较复杂,在运行程序时出现执行超时提示如下:Fatal error: Maximum execution time of 30 seconds exceeded in D:\php\AppServ\www\sum3\test.php on line 3通过在网上搜索,找到了解决方法和大家分享,下面来一起看看吧。
    2016-11-11
  • Linux下PHP加速器APC的安装与配置笔记

    Linux下PHP加速器APC的安装与配置笔记

    这篇文章主要介绍了Linux下PHP加速器APC的安装与配置笔记,本文同时给出了Windows下安装apc的方法,需要的朋友可以参考下
    2014-10-10
  • php去掉一维数组的键值的实例方法

    php去掉一维数组的键值的实例方法

    在本篇文章里小编给大家整理了一篇关于php去掉一维数组的键值的实例方法,有兴趣的朋友们可以学习下。
    2021-11-11
  • PHP实现批量删除(封装)

    PHP实现批量删除(封装)

    本篇文章主要介绍了PHP实现批量删除(封装)的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04

最新评论