向mysql的innodb表快速插入数据的php程序
做项目的时候经常需要模拟数据,往往都是百万甚至千万级的,对于innodb的表可以参考下面的程序,真的很快,在表里已经有2千万条记录后再插入1千万条记录花了2分钟://连接$conn=mysql_connect("localhost","root","xxxx");mysql_select_db("test",$conn);//关闭自动提交会大大提高插...
·
做项目的时候经常需要模拟数据,往往都是百万甚至千万级的,对于innodb的表可以参考下面的程序,真的很快,在表里已经有2千万条记录后再插入1千万条记录花了2分钟:
- // 连接
- $conn = mysql_connect("localhost", "root", "xxxx");
- mysql_select_db("test", $conn);
- // 关闭自动提交会大大提高插入速度
- $sql = "SET AUTOCOMMIT=0" ;
- mysql_query($sql);
- $tmp = array();
- for ($i = 1; $i <= 10000000; $i++)
- {
- // 每1000行组成一条sql,这比一行一个sql效率要高
- if ($i % 1000 == 0)
- {
- $sql = "insert into test values";
- $sql .= implode(',', $tmp);
- mysql_query($sql);
- $tmp = array();
- }
- if($i%50000 == 0)
- {
- echo $i."\n";
- }
- $tmp[] = "(null, 'aa','bb', 'cc')";
- }
- echo "over\n";
- // 打开自动提交
- $sql = "SET AUTOCOMMIT=1" ;
- mysql_query($sql);
转载于:https://blog.51cto.com/ustb80/1053099
更多推荐
所有评论(0)