我按以下方式将数据插入数据库:
控制器:
foreach($cData as $data){
$ins['name'] = $data['name'];
$bonus = $this->calBonus($data['bonus']); //calculates bonus.
$ins['bonus'] = $bonus;
//similarly there are few more data which are assigned to the $ins array;
$res = $this->myModel->insertData($ins); // for inserting data;
}
型号:
function insertData($ins){
$res = $this->db->insert('bonus',$ins);
if($res){
return 1;
}
else{
return 0;
}
}
我在300000
中有$cdata
个数据。对于一次数据插入,它需要100 milliseconds
。因此,完全插入需要8个多小时。
现在如何优化此插入?有没有更好的方法呢?
答案 0 :(得分:5)
使用批量插入功能
$mainArray = array();
foreach($cData as $data){
$ins['name'] = $data['name'];
$bonus = $this->calBonus($data['bonus']); //calculates bonus.
$ins['bonus'] = $bonus;
// push array in main array
array_push($mainArray,$ins);
}
if($mainArray != array()){
$this->db->insert_batch('YOUR_TABLE_NAME', $mainArray)
}
参考:Here