欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php快速導(dǎo)入大量數(shù)據(jù)的實(shí)例方法

 更新時(shí)間:2019年09月23日 08:23:31   作者:V  
在本篇文章里小編給大家分享的是關(guān)于php如何快速導(dǎo)入大量數(shù)據(jù)的相關(guān)知識點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。

PHP快速導(dǎo)入大量數(shù)據(jù)到數(shù)據(jù)庫的方法

第一種方法:使用insert into 插入,代碼如下:

$params = array(‘value'=>'50′);

 

set_time_limit(0);

 

echo date(“H:i:s”);

 

for($i=0;$i<2000000;$i++){

 

$connect_mysql->insert($params);

 

};

echo date(“H:i:s”);

最后顯示為:23:25:05 01:32:05 也就是花了2個(gè)小時(shí)多!

第二種方法:使用事務(wù)提交,批量插入數(shù)據(jù)庫(每隔10W條提交下)最后顯示消耗的時(shí)間為:22:56:13 23:04:00 ,一共8分13秒 ,代碼如下:

echo date(“H:i:s”);

 

$connect_mysql->query(‘BEGIN');

 

$params = array(‘value'=>'50′);

 

for($i=0;$i<2000000;$i++){

 

$connect_mysql->insert($params);

 

if($i%100000==0){

 

$connect_mysql->query(‘COMMIT');

 

$connect_mysql->query(‘BEGIN');

 

}

 

}

 

$connect_mysql->query(‘COMMIT');

 

echo date(“H:i:s”);

第三種方法:使用優(yōu)化SQL語句

將SQL語句進(jìn)行拼接,使用 insert into table () values (),(),(),()然后再一次性插入,如果字符串太長,則需要配置下MYSQL,

在mysql命令行中運(yùn)行 :

set global max_allowed_packet = 2*1024*1024*10;

消耗時(shí)間為:11:24:06 11:25:06;

插入200W條測試數(shù)據(jù)僅僅用了1分鐘!代碼如下:

$sql= “insert into twenty_million (value) values”;

 

for($i=0;$i<2000000;$i++){

 

$sql.=”('50′),”;

 

};

 

$sql = substr($sql,0,strlen($sql)-1);

 

$connect_mysql->query($sql);

總結(jié):在插入大批量數(shù)據(jù)時(shí),第一種方法無疑是最差勁的,而第二種方法在實(shí)際應(yīng)用中就比較廣泛,第三種方法在插入測試數(shù)據(jù)或者其他低要求時(shí)比較合適,速度確實(shí)快。

感謝大家的學(xué)習(xí)和對腳本之家的支持。

相關(guān)文章

最新評論