向mysql的innodb表快速插入数据的php程序

做项目的时候经常需要模拟数据,往往都是百万甚至千万级的,对于innodb的表可以参考下面的程序,真的很快,在表里已经有2千万条记录后再插入1千万条记录花了2分钟:

  
  
  
  
  1. // 连接 
  2. $conn = mysql_connect("localhost""root""xxxx"); 
  3. mysql_select_db("test"$conn); 
  4.  
  5. // 关闭自动提交会大大提高插入速度 
  6. $sql = "SET AUTOCOMMIT=0" ; 
  7. mysql_query($sql); 
  8.  
  9. $tmp = array(); 
  10. for ($i = 1; $i <= 10000000; $i++) 
  11.     // 每1000行组成一条sql,这比一行一个sql效率要高 
  12.     if ($i % 1000 == 0) 
  13.     { 
  14.         $sql = "insert into test values"
  15.         $sql .= implode(','$tmp); 
  16.         mysql_query($sql); 
  17.         $tmp = array(); 
  18.     } 
  19.  
  20.     if($i%50000 == 0) 
  21.     { 
  22.         echo $i."\n"
  23.     } 
  24.     $tmp[] = "(null, 'aa','bb', 'cc')"
  25. echo "over\n"
  26.  
  27. // 打开自动提交 
  28. $sql = "SET AUTOCOMMIT=1" ; 
  29. mysql_query($sql); 

 

你可能感兴趣的:(快速插入数据,php生成模拟数据)