php+Mysql?

資料庫資料同步,遷移等其他操作時,會涉及到資料的轉移,插入操作。如果是千萬級別的資料操作,那麼怎樣提高插入效率呢??可能有人會說,用load方法簡單高效。是的,但是如果是不同資料庫之間的同步插入該怎麼解決呢??也許你有很高明的辦法,也許你一無所措。這裡演示一種常規操作方法,僅供參考。

工具/原料

php開發執行環境;

資料庫系統;

大資料資源。

方法/步驟

優化SQL插入語句;

比如迴圈一條一條插入,改成連結多個值進行插入。

將:

foreach($re as $it){

$sql="insert into table (id,name) values(".$it['id'].","."$it['name'].")";

mysql_query($sql);

}

改為:

$sql="insert into table (id,name) values";

foreach($re as $it){

$str= "'".$it['id']."','".$it['name']."'";

}

$sql .= "(".$str."),";

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

mysql_query($sql);

php+Mysql 大資料匯入怎樣提高效率?

開啟mysql的配置檔案,my.ini檔案,並找到:max_allowed_packet項;

php+Mysql 大資料匯入怎樣提高效率?

將值修改大一點,具體根據自己需要修改。比如這裡修改為:1G。

php+Mysql 大資料匯入怎樣提高效率?

重啟mysql服務;

php+Mysql 大資料匯入怎樣提高效率?

如果執行頁面提示記憶體溢位,可將值設大一點。

Allowed memory size of 134217728 bytes exhausted (tried to allocate 132907287 bytes)

php+Mysql 大資料匯入怎樣提高效率?

這樣,面對千萬資料匯入的時候,比原來那種方法至少快好多倍。

資料, 資料庫, 效率, 提高效率,
相關問題答案