<?php
//$dsn = 'mysql:host=192.168.10.209;dbname=mysqlTest';
//$db = new PDO($dsn,'數據庫用戶名','數據庫密碼',array(PDO::ATTR_PERSISTENT => true));
$dsn = mysql_connect("數據庫連接地址","數據庫用戶名","數據庫密碼");
if (!$dsn)
{
die('Could not connect: ' . mysql_error());
}
else
$db = mysql_select_db("mysqlTest", $dsn);
//刪除上次的插入數據
mysql_query('delete from `test`');
//開始計時
$start_time = time();
$sum = 1000000;
// 測試選項
$num = 1;
if ($num == 1){
// 單條插入
for($i = 0; $i < $sum; $i++){
mysql_query("insert into `test` (`id`,`name`) values ($i,'tsetssdf')");
}
} elseif ($num == 2) {
// 批量插入,爲了不超過max_allowed_packet,選擇每10萬插入一次
for ($i = 0; $i < $sum; $i++) {
if ($i == $sum - 1) {
//最後一次
if ($i%100000 == 0){
$values = "($i, 'testtest')";
mysql_query("insert into `test` (`id`, `name`) values $values");
} else {
$values .= ",($i, 'testtest')";
mysql_query("insert into `test` (`id`, `name`) values $values");
}
break;
}
if ($i%100000 == 0) {
//平常只有在這個情況下才插入
if ($i == 0){
$values = "($i, 'testtest')";
} else {
mysql_query("insert into `test` (`id`, `name`) values $values");
$values = "($i, 'testtest')";
}
} else {
$values .= ",($i, 'testtest')";
}
}
} elseif ($num == 3) {
// 事務插入
$db->beginTransaction();
for($i = 0; $i < $sum; $i++){
mysql_query("insert into `test` (`id`,`name`) values ($i,'tsetssdf')");
}
$db->commit();
} elseif ($num == 4) {
// 文件load data
$filename = dirname(__FILE__).'/test.sql';
$fp = fopen($filename, 'w');
for($i = 0; $i < $sum; $i++){
fputs($fp, "$i,'testtest'\r\n");
}
$db->exec("load data infile '$filename' into table test fields terminated by ','");
}
$end_time = time();
echo "總耗時", ($end_time - $start_time), "秒\n";
echo "峯值內存", round(memory_get_peak_usage()/1000), "KB\n";
?>