首頁 >php教程 >PHP源码 >CI 批量插入数据

CI 批量插入数据

PHP中文网
PHP中文网原創
2016-05-25 17:00:191245瀏覽

CI 批量插入数据的优化算法

$sub_form = array();
		$loop = 0;
		$ins_loop = 0;
		$sum = count($form_datas);
		$this->logger->info('insert data total:'.$sum);
		//使用事物批量导入有助于提高插入效率
		$callStartTime = microtime(true);
		$this->db->trans_start();
		foreach ( $form_datas as $item ) {
        	$loop ++;
        	$sub_form[] = $item;
        	if(($loop % 200) == 0 || $loop == $sum){
        		$this->logger->info('insert data num:'.$loop);
				$res = $this->kb_object_instance_mdl->insert_batch($sub_form,$obj_id);
				$ins_loop ++;
				unset($sub_form);
				if(($ins_loop % 5) == 0){
					$this->logger->info('insert data trans_complete ins_loop:'.$ins_loop);
        			$this->db->trans_complete();
        			if($loop != $sum){
	        			$this->db->trans_start();
	        		}
				}
        	}
		}
		//$this->db->trans_complete();
		$callEndTime = microtime(true);
		$callTime = $callEndTime - $callStartTime;
		$this->logger->info('insert data use time:'.sprintf('%.4f',$callTime));
    	if($this->db->trans_status() === TRUE){
    		$this->_show_msg('1',array('data'=>'import ok'));
    	}else{
    		$this->_show_error('saveOrUpdate error');
    	}
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn