PDO 与 MySQLi 二者效率简单比较 - MySQL中文参考手册
2019-09-11 阅读 : 次
PDO 与 MySQLi 二者效率简单比较连接效率比较
<?php$p_start_time = microtime(true);for ($i = 1; $i <= 100; $i++) { $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'aaaaaa');}$p_end_time = microtime(true);$res = $p_end_time - $p_start_time; // PDO 连接方式耗时$m_start_time = microtime(true);for ($i = 1; $i <= 100; $i++) { mysqli_connect('localhost', 'root', 'aaaaaa', 'test');}$m_end_time = microtime(true);$res2 = $m_end_time - $p_start_time; // MySQL 连接方式耗时var_dump($res, '<br />', $res2);if ($res > $res2) { echo 'PDO 连接数据库是 MySQL 的' . round($res2 / $res) . '倍';} else { echo 'MySQL 连接数据库是 PDO 的' . round($res2 / $res) . '倍';}
写入速度比较
<?php// PDO 与 MySQLi 两种连接方式写入效率简单比较$p_start_time = microtime(true);$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'aaaaaa');// 写入数据表$sql = <<<EOFCREATE TABLE IF NOT EXISTS test( id int unsigned not null)ENGINE=InnoDB CHARSET utf8 comment '写入测试表';EOF;$pdo->exec($sql);// 使用 PDO 预处理语句写入 500 条数据到数据库$sql = 'INSERT INTO test VALUES(:id)';$statement = $pdo->prepare($sql);for ($i = 1; $i <= 500; $i++) { $id = 1; $statement->bindParam(':id', $id, PDO::PARAM_INT); $statement->execute();}unset($pdo); // 销毁 PDO 对象$p_end_time = microtime(true);$res = $p_end_time - $p_start_time; // PDO 连接方式耗时$m_start_time = microtime(true);// 使用 MySQLi 连接方式写入 500 条数据到数据库$link = mysqli_connect('localhost', 'root', 'aaaaaa', 'test');for ($i = 1; $i <= 500; $i++) { $sql = 'INSERT INTO test VALUES (2)'; mysqli_query($link, $sql);}mysqli_close($link); // 关闭连接$m_end_time = microtime(true);$res2 = $m_end_time - $p_start_time; // MySQL 连接方式耗时var_dump($res, '<br />', $res2);if ($res > $res2) { echo 'PDO 连接数据库写入速度是 MySQL 的' . round($res2 / $res) . '倍';} else { echo 'MySQL 连接数据库写入速度是 PDO 的' . round($res2 / $res) . '倍';}
本文地址:https://www.helloaliyun.com/tutorial/528.html