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

CI 批量插入数据

PHP中文网
Lepaskan: 2016-05-25 17:00:19
asal
1247 orang telah melayarinya

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');
    	}
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan