Ejemplo n.º 1
0
 * @author Gerrit Addiks <*****@*****.**>
 * @package Addiks
 */
use Addiks\PHPSQL\PDO\PDO;
require_once dirname(__FILE__) . "/bootstrap.php";
if (isset($argv[1]) && $argv[1] === 'mysql') {
    $dsn = "mysql:host=127.0.0.1;dbname=benchmark";
    $pdo = new \PDO($dsn, "benchmark", "benchmark");
} else {
    $dsn = "inmemory:benchmark";
    $pdo = new PDO($dsn);
}
echo " - opened database '{$dsn}'.\n";
echo " - creating table.\n";
$pdo->query("\n    CREATE TABLE benchmark_table (\n        id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,\n        foo VARCHAR(128),\n        bar DECIMAL(5,3),\n        baz DATETIME\n    );\n");
$insertStatement = $pdo->prepare("\n    INSERT INTO benchmark_table\n        (foo, bar, baz)\n    VALUES\n        (?, ?, ?)\n");
$selectStatement = $pdo->prepare("SELECT * FROM benchmark_table WHERE id = ?");
$starttime = microtime(true);
srand(0);
$insertCount = 10000;
echo " - inserting {$insertCount} rows.\n";
for ($i = 1; $i <= $insertCount; $i++) {
    $insertStatement->execute([md5($i) . md5($i . '-2'), rand(0, 10000000) * 0.001, date("Y-m-d H:i:s", rand(0, 2007583645))]);
    if ($i % 1000 === 0) {
        echo " - ({$i} / {$insertCount})\n";
    }
}
$stoptime = microtime(true);
$seconds = round($stoptime - $starttime, 3);
echo " - inserting {$insertCount} rows took {$seconds} seconds.\n";
$selectCount = 10000;