大批量插入數(shù)據(jù)庫(kù)的三種方法速度對(duì)比


第一種方法: 使用insert into 插入 for 循環(huán)sql插入數(shù)據(jù)

????$param = [‘id’=>1];

????set_time_limit(0);

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

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

????????$db->Insert($param,$table,true);

????};

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

第二種方法: 使用事務(wù)提交夺鲜,批量插入數(shù)據(jù)庫(kù)(每隔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語(yǔ)句:將SQL語(yǔ)句進(jìn)行拼接,使用insert into table()values(),(),(),()然后再一次性插入匿又,如果字符串太長(zhǎng)骂蓖,則需要配置下MYSQL,在mysql命令下運(yùn)行:set? global max_allowed_packet = 2*1024*1024*10?


$structinfo =[]; //查詢(xún)的數(shù)組

$data =[];? //需要插入的數(shù)據(jù)組合成數(shù)組

foreach ($structInfo?as $k => $v){

? ? $data[$k]['company_k']? ? ? ? ? ? ? ? ?= $v['company_k'];

? ? $data[$k]['company_name']? ? ? ? ? = $v['company_name'];

? ? $data[$k]['dept_k']? ? ? ? ? ? ? ? ? ? ? ? ?= $v['dept_k'];

? ? $data[$k]['dept_name']? ? ? ? ? ? ? ? ? = $v['dept_name'];

? ? $data[$k]['one_lead_code']? ? ? ? ? ?= $v['one_lead_code'];

? ? $data[$k]['one_lead_realname']? ? ? = $v['one_lead_realname'];

? ? $data[$k]['two_lead_code']? ? ? ? ? ? ? = $v['two_lead_code'];

? ? $data[$k]['two_lead_realname']? ? ? ? = trim($v['two_lead_realname']);

? ? $data[$k]['company_admin_code']? ? = $v['company_admin_code'];

? ? $data[$k]['company_admin_realname']= $v['company_admin_realname'];

? ? $data[$k]['user_code']? = $v['user_code'];

? ? $data[$k]['realname']? = $v['realname'];

? ? $data[$k]['job_name']? = $v['job_name'];

? ? $data[$k]['user_level']= $v['level'];

? ? $data[$k]['in_date']? ? = $v['in_date'];

}

var_dump(array_keys($data[0]));

$fildString = "". implode(',',array_keys($data[0]))."";? //要插入的表里的字段

$sql = "INSERT INTO `lzh_score_template`($fildString)VALUE ";

$string =? "'" .join("','",$data[0])."'";

//join函數(shù)是implode函數(shù)的別名? 把數(shù)組元素分割為字符串implode(separator,array)separator規(guī)定數(shù)組元素之間放置的內(nèi)容

foreach ($dataas $k => $v){

? ? $sql .= "('" .join("','",$v)."'),";? //以','分割字符串,然后在在兩邊拼接分號(hào)'',這樣元素值就以分號(hào)分割了

}

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

最后總結(jié)下君仆,在插入大批量數(shù)據(jù)時(shí)忙厌,第一種方法無(wú)疑是最差勁的凫岖,而第二種方法在實(shí)際應(yīng)用中就比較廣泛,第三種方法在插入測(cè)試數(shù)據(jù)或者其他低要求時(shí)比較合適慰毅,速度確實(shí)快隘截。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市汹胃,隨后出現(xiàn)的幾起案子婶芭,更是在濱河造成了極大的恐慌,老刑警劉巖着饥,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犀农,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宰掉,警方通過(guò)查閱死者的電腦和手機(jī)呵哨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)轨奄,“玉大人孟害,你說(shuō)我怎么就攤上這事∨材猓” “怎么了挨务?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)玉组。 經(jīng)常有香客問(wèn)我谎柄,道長(zhǎng),這世上最難降的妖魔是什么惯雳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任朝巫,我火速辦了婚禮,結(jié)果婚禮上石景,老公的妹妹穿的比我還像新娘劈猿。我一直安慰自己拙吉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布糙臼。 她就那樣靜靜地躺著庐镐,像睡著了一般恩商。 火紅的嫁衣襯著肌膚如雪变逃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天怠堪,我揣著相機(jī)與錄音揽乱,去河邊找鬼。 笑死粟矿,一個(gè)胖子當(dāng)著我的面吹牛凰棉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陌粹,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼撒犀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掏秩?” 一聲冷哼從身側(cè)響起或舞,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒙幻,沒(méi)想到半個(gè)月后映凳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邮破,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年诈豌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抒和。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矫渔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摧莽,到底是詐尸還是另有隱情庙洼,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布范嘱,位于F島的核電站送膳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丑蛤。R本人自食惡果不足惜叠聋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望受裹。 院中可真熱鬧碌补,春花似錦虏束、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至袜啃,卻和暖如春汗侵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背群发。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工晰韵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熟妓。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓雪猪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親起愈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子只恨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn) # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 9,709評(píng)論 0 44
  • 大家猴哇 ( ??)?"' 蠟筆小貓兒手繪幫 每天一個(gè)好玩的主題 帶你逛逛這個(gè)有趣的世界~ 今天我萌一起去戰(zhàn)斗民族...
    蠟筆小貓兒閱讀 398評(píng)論 0 6
  • 3月4日英超聯(lián)賽第27輪,曼聯(lián)1-1伯恩茅斯抬虽,主場(chǎng)被10人應(yīng)戰(zhàn)的伯恩茅斯逼平官觅,雖然大多球迷都表示這場(chǎng)球看的憋氣,感...
    云龍聊球閱讀 199評(píng)論 0 0
  • 剛搬來(lái)不久斥赋,家附近有個(gè)水果市場(chǎng)缰猴,里面有很多水果門(mén)市。婆婆和她的姐妹將這個(gè)市場(chǎng)考察了個(gè)遍疤剑,結(jié)論是:市場(chǎng)口有一家水果超...
    夏雨叮咚閱讀 160評(píng)論 0 0
  • 現(xiàn)在老板們別著急滑绒,我馬上把那個(gè)錄好的視頻發(fā)過(guò)來(lái),按照你面的這個(gè)步驟來(lái)做就可以了隘膘。
    肖玉嬋閱讀 90評(píng)論 0 0