本文实例讲述了php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率。分享给大家供大家参考,具体如下:
/**
* 测试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&#61;1;$i<&#61;100;$i&#43;&#43;){
$title &#61; "pdo标题".$i;
$content &#61; "pdo内容".$i;
$addtime &#61; time();
$user_id &#61; $i;
$pdo_sql &#61; "INSERT INTO &#96;article&#96;(&#96;title&#96;,&#96;content&#96;,&#96;addtime&#96;,&#96;user_id&#96;) VALUES(:title,:content,:addtime,:user_id)";
$sth &#61; $pdo->prepare($pdo_sql);
$sth->bindParam(&#39;:title&#39;,$title);
$sth->bindParam(&#39;:content&#39;,$content);
$sth->bindParam(&#39;:addtime&#39;,$addtime);
$sth->bindParam(&#39;:user_id&#39;,$user_id);
$sth->execute();
}
$pdo_endTime &#61; microtime(true);
$pdo_time &#61; $pdo_endTime - $pdo_startTime;
echo $pdo_time;
echo "
";
//通过mysql链接数据库
$mysqli_startTime &#61; microtime(true);
$mysqli &#61; mysqli_connect("localhost","root","1234","test") or die("数据连接失败");
mysqli_query($mysqli,"set names utf8");
for($i&#61;1;$i<&#61;100;$i&#43;&#43;){
$title &#61; "mysqli标题".$i;
$content &#61; "mysqli内容".$i;
$addtime &#61; time();
$user_id &#61; $i;
$sql &#61; "INSERT INTO &#96;article&#96;(&#96;title&#96;,&#96;content&#96;,&#96;addtime&#96;,&#96;user_id&#96;) VALUES(&#39;".$title."&#39;,&#39;".$content."&#39;,".$addtime.",".$user_id.")";
mysqli_query($mysqli,$sql);
}
$mysqli_endTime &#61; microtime(true);
$mysqli_time &#61; $mysqli_endTime - $mysqli_startTime;
echo $mysqli_time;
echo "
";
if($pdo_time > $mysqli_time){
echo "pdo的执行时间是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{
echo "mysqli的执行时间是pdo的".round($mysqli_time/$pdo_time)."倍";
}
测试结果&#xff1a;其实经过多次测试&#xff0c;pdo和mysqli的执行效率差不多。
希望本文所述对大家PHP程序设计有所帮助。