游客发表

大数据量下MySQL插入方法的性能比较

发帖时间:2025-11-04 21:54:20

大数据量下MySQL插入方法的性能比较
复制<?大数的性php  $dsn = mysql:host=localhost;dbname=test;  $db = new PDO($dsn,root,,array(PDO::ATTR_PERSISTENT => true));  //删除上次的源码下载插入数据 $db->query(delete from `test`);  //开始计时 $start_time = time();  $sum = 1000000;  // 测试选项 $num = 1;  if ($num == 1){  // 单条插入 for($i = 0; $i < $sum; $i++){  $db->query("insert into `test` (`id`,`name`) values ($i,tsetssdf)"); }  } elseif ($num == 2) {  // 批量插入,WordPress模板为了不超过max_allowed_packet,免费信息发布网据量较选择每10万插入一次 for ($i = 0; $i < $sum; $i++) {  if ($i == $sum - 1) { //***一次 if ($i%100000 == 0){  $values = "($i,插入 testtest)";  $db->query("insert into `test` (`id`, `name`) values $values"); } else {  $values .= ",($i, testtest)";  $db->query("insert into `test` (`id`, `name`) values $values"); }  break;  }  if ($i%100000 == 0) { //平常只有在这个情况下才插入 if ($i == 0){  $values = "($i, testtest)"; } else {  $db->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++){  $db->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,testtestrn"); }  $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";  ?>  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.

    热门排行

    友情链接