일상적인 개발에는 배치 삽입 작업이 꽤 많습니다. 오래 전 아직도 루프에 SQL 삽입을 작성하고 있었는데 프로젝트 매니저에게 땅바닥에 눌려 문지르던 기억이 납니다. 글쎄요, 사용하지 않을 때는 성능이 괜찮습니다. 성능에 병목 현상이 발생하면 코드 최적화와 데이터베이스 최적화가 가장 큰 타격을 받게 됩니다.
더 이상 헛소리는 그만하고 코드를 열어보자!
1. 먼저 laravel5.1 매뉴얼을 확인하세요
그림에서 알 수 있듯이 laravel은 배열을 삽입하는 방법을 제공합니다. 일괄 삽입 작업 구현
2. 먼저 laravel의 get() 쿼리를 사용하여 배열 객체를 가져온 다음 작업을 일괄 삽입합니다
$ret = []; $create_red = new create_red(); foreach($arr3 as $v){ $delayDays = $v->delayDays; $workDays = $v->workDays; //获取当天时间戳的0点 $now = strtotime(date('Y-m-d',time())); ; $start = $now + $delayDays*86400; $start_at = date("Y-m-d H:i:s",$start); $end = $now + $delayDays*86400 + $workDays*86400; $end_at = date('Y-m-d H:i:s',$end); $created_at = date("Y-m-d H:i:s",$now); $ret[] = [ 'uid'=>$uid, 'status'=>1, 'title'=>$v->title, 'desc'=>$v->desc, 'discount'=>$v->discount, 'minprice'=>$v->minprice, 'imgurl'=>$v->imgurl, 'start_at'=>$start_at, 'end_at'=>$end_at, ]; } //往数据库批量插入数据 $result = $create_red::insert($ret); if(!$result){ DB::rollBack(); return MyResponse::error(9006,'兑换优惠券失败'); }
1.
그룹