Certains rapide timings indiquer AOP est légèrement plus rapide lors de la connexion.
$start = microtime(true);
for($i=0; $i<10000; ++$i) {
try {
$db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage()."\n";
}
$db = null;
}
$pdotime = microtime(true) - $start;
echo "PDO time: ".$pdotime."\n";
$start = microtime(true);
for($i=0; $i<10000; ++$i) {
$db = mysql_connect($host, $user, $password);
if(!$db) {
echo "Connection failed\n";
}
if(!mysql_select_db($schema, $db)) {
echo "Error: ".mysql_error()."\n";
}
mysql_close($db);
}
$rawtime = microtime(true) - $start;
echo "Raw time: ".$rawtime."\n";
Donne des résultats comme
PDO time: 0.77983117103577
Raw time: 0.8918719291687
PDO time: 0.7866849899292
Raw time: 0.8954758644104
PDO time: 0.77420806884766
Raw time: 0.90708494186401
PDO time: 0.77484893798828
Raw time: 0.90069103240967
La différence de vitesse sera négligeable de toute façon; l'établissement d'une connexion réseau est susceptibles de prendre BEAUCOUP plus longtemps que tous les frais généraux encourus par PDO, surtout si le serveur mysql est sur un autre hôte.
Vous avez mentionné toutes les raisons d'utiliser PDO vous-même. Vraiment, jamais, jamais utiliser mysql_* fonctions directement, soit utiliser PDO, ou l'utilisation de certains autres de la bibliothèque.