mysql 插入大量数据 千万级别

php:用于生成sql文件,其实就是字段值,用\t分割,每一行用\r\n分割

<?php
header ( "Content-Type: text/html; charset=utf-8" );
set_time_limit(1000);
$myFile="l:/insertcardtotalinfo3.sql";
try{
$fh=fopen($myFile,'wb');//ab追加 wb重写
if($fh){

/*
$sql='INSERTINTO`cardtotalinfo`(`code`,`companyid`,`faceprice`,`purchaseprice`,`purchasetime`,'
.'`networkid`,`isfirst`,`sendtime`,`issaled`,`saletime`,`networkmoney`,`nwmoneytime`,`isspended`,`companymoney`,`cpmoneytime`)'
.'VALUES(\'ADFE3993\',\'1\',\'10.5\',\'6\',\'2011-11-3012:43:03\',\'1\','
.'b\'0\',\'2011-11-3012:43:12\',b\'0\',\'2011-11-3012:43:19\',\'7\',\'2011-11-3012:43:29\',b\'0\',\'6\','
.'\'2011-11-3012:43:37\')';

fwrite($fh,$sql);
$sql=',(\'ADFE3993\',\'1\',\'10.5\',\'6\',\'2011-11-3012:43:03\',\'1\','
.'b\'0\',\'2011-11-3012:43:12\',b\'0\',\'2011-11-3012:43:19\',\'7\',\'2011-11-3012:43:29\',b\'0\',\'6\','
.'\'2011-11-3012:43:37\')';
$i=0;
while($i<1000000)//1000000
{
$i++;
fwrite($fh,$sql);
}
echo"写入成功";
*/
//以下用于LOADDATAINFILE
//LOAD DATA local INFILE 'l:/insertcardtotalinfo3.sql' INTO TABLE  test2(code,companyid,faceprice,purchaseprice,purchasetime,networkid,sendtime,saletime,networkmoney,nwmoneytime,companymoney,cpmoneytime) ;
 
$sql="\t10.5\t6\t2011-11-3012:43:03\t";
$sql2="\t2011-11-3012:43:12\t2011-11-3012:43:19\t7\t2011-11-3012:43:29\t6\t2011-11-3012:43:37";

$i=0;
while($i<10000000)//1000000
{
$i++;
srand() ;
$code = "DEF".rand(10000000, 90000000);
$company =  "Cp".rand(10000000, 90000000);
$network =  "nw".rand(10000000, 90000000);
fwrite($fh,$code."\t".$company.$sql.$network.$sql2."\r\n");
}
echo"写入成功";



}
}
catch(Exception$err){
echo"页面出错->".$err->getMessage();
}
?>



sql语句:

LOAD DATA local INFILE 'l:/insertcardtotalinfo3.sql' INTO TABLE  test2(code,companyid,faceprice,purchaseprice,purchasetime,networkid,sendtime,saletime,networkmoney,nwmoneytime,companymoney,cpmoneytime) ;


耗时:

时间: 298.962秒

 

如果code为索引,则

[SQL] LOAD DATA local INFILE 'f:/insertcardtotalinfo3.sql' INTO TABLE  test(number,companyid,faceprice,purchaseprice,purchasetime,networkid,sendtime,saletime,networkmoney,nwmoneytime,companymoney,cpmoneytime) ;
受影响的行: 10000000
时间: 621.969s(笔记本性能较差的情况下)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值