* @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;