以前にPHP5.1.0RC1でPDOとADODB、PEAR::DBのベンチマークを取りましたが、今回は5.1.4でADODBの代わりにMDB2を加えてやってみました。zuzaraのサービスの一部をさくらの専用サーバに移行しようと考えていて、OSでFedoraCore5を選択するとPHP5.1.4になります。
| PDO | PEAR::DB | PEAR::MDB2 | |
|---|---|---|---|
| PostgreSQL8.1.4 | 0.008 | 0.035 | 0.048 |
MDB2はどのぐらい速いのかなぁ、期待して試したのですがいまいち?
機能もメソッド名もほとんど同じなので5系ではやはりPDOがよさげ。
なお、testテーブルは1000行のデータが入っています。
pdo.php
<?php
require_once('Benchmark/Timer.php');
$timer = new Benchmark_Timer(true);
try {
$dbh = new PDO('pgsql:host=localhost;dbname=funaki', 'funaki', '');
$sth = $dbh->prepare("select * from test");
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();
$data = $sth->fetchAll();
} catch (PDOException $e) {
die($e->getMessage());
}
pear_db.php:
<?php
require_once('Benchmark/Timer.php');
$timer = new Benchmark_Timer(true);
require_once('DB.php');
$db = DB::connect("pgsql://funaki@unix(/tmp)/funaki");
if (PEAR::isError($db)) {
die($db->getMessage());
}
$sql = "select * from test";
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$data = $db->getAll($sql);
pear_mdb2.php:
<?php
require_once('Benchmark/Timer.php');
$timer = new Benchmark_Timer(true);
require_once('MDB2.php');
$db = MDB2::connect("pgsql://funaki@unix(/tmp)/funaki");
if (PEAR::isError($db)) {
die($db->getMessage());
}
$sql = "select * from test";
$data = $db->queryAll($sql);

PHP5.1.4でPDOとPEAR::DB, MDB2のベンチマーク
コメントはまだありません。
»
コメントはお気軽にどうぞ



