반응형

PHP에서 MySQL에 Bulk Insert 방식으로 대량 INSERT 처리하는 방법입니다.

여러 행을 반복문을 돌면서 MySQL에 Connection을 하여 실행을 하게 되면 성능 저하가 발생하게 됩니다.

일반적으로는 INSERT ~ SELECT 방식으로 진행을 합니다.

위 방식으로 처리를 하지 못하는 경우 PHP내에서 데이터를 구성하여 대량으로 행을 INSERT 해야 할 경우에는 BULK INSERT 방식을 사용하면 됩니다.

예시 : INSERT INTO table ( seq, col ) VALUES ( '1', '가' ) , ( '2', '나' ) , ( '3', '다' )

PHP 프로그램에서 BULK INSERT 문장을 만드는 방법

$arrayList = array('가','나','다');

// 배열 데이터을 반복문읠 이용하여 INSERT 문장을 만든다.
for ( $i = 0; $i < count($arrayList); $i++ )
{
  // 일련번호를 생성한다.
  $seq = $i+1;

  // Bulk Insert를 위한 서브 SQL을 만든다.
  $sub_sql_array[] =	"
  (
    '{$seq}',
    '{$arrayList[$i]}'
  )
  ";
}
// End 배열 데이터을 반복문읠 이용하여 INSERT 문장을 만든다.

// Bulk Insert 방식으로 일괄로 데이터를 저장한다.
$sql = "
INSERT INTO table (
  seq,
  col )
VALUES
";

$sub_sql = implode(', ', $sub_sql_array);
$sql .= $sub_sql;

echo $sql;
// result
// INSERT INTO table ( seq, col ) VALUES ( '1', '가' ) , ( '2', '나' ) , ( '3', '다' )

 

PHP MySQL Bulk Insert 방식으로 대량 INSERT 처리하기

 

2019/12/06 - [유용한 활용팁] - PHP 마지막 문자 콤마(,) 제거 방법 - substr, rtrim, trim, implode

 

PHP 마지막 문자 콤마(,) 제거 방법 - substr, rtrim, trim, implode

PHP에서 마지막에 있는 문자 콤마(,)를 제거(삭제)하는 방법입니다. 1. substr를 이용하는 방법 $str = substr($str, 0, -1); $str = "1,2,3,4,"; $str = substr($str, 0, -1); echo $str; // result // 1,2,3,4 2..

han288.tistory.com

2019/12/08 - [유용한 활용팁] - PHP 문자 암호화하여 Form 전송하기 - mcrypt_encrypt, mcrypt_decrypt, bin2hex, pack

 

PHP 문자 암호화하여 Form 전송하기 - mcrypt_encrypt, mcrypt_decrypt, bin2hex, pack

데이터가 길거나 JSON 형태의 데이터를 FORM으로 전송을 하면 의도하지 않게 데이터가 왜곡 되는 경우가 있습니다. 이 경우 URL ENCODING을 이용하여 처리를 하기도 합니다. 하지만 이렇게 하더라도 데이터 처리간..

han288.tistory.com

2019/11/17 - [유용한 활용팁] - PHP 2차원 Array에서 unset후 배열 index 재 정렬 방법

 

PHP 2차원 Array에서 unset후 배열 index 재 정렬 방법

PHP에서 2차원(다차원) Array(배열)에 있는 값을 UNSET을 이용하여 삭제 후 array_values을 이용하여 배열의 인덱스를 재 정렬하는 방법입니다. 1. 2차원 배열을 for 반복문을 돌리면서 in_array를 이용하여 원하..

han288.tistory.com

2019/10/22 - [유용한 활용팁] - PHP Form 데이터 POST, GET 전송시 역슬래쉬(\) 자동 추가 현상 해결 방안 - get_magic_quotes_gpc(), stripslashes

 

PHP Form 데이터 POST, GET 전송시 역슬래쉬(\) 자동 추가 현상 해결 방안 - get_magic_quotes_gpc(), stripslashes

PHP에서 Form의 데이터를 POST 또는 GET 방식으로 전송 시 데이터에 원하지 않게 역슬래시(\)가 들어가는 경우가 있습니다. 데이터베이스에 저장시 '(작은 따옴표)가 들어가서 문제가 생기는 것을 방지하기 위해 P..

han288.tistory.com

2019/10/14 - [유용한 활용팁] - MySQL 날짜 타입 칼럼 데이터(Date Type column Data) 조회(검색) 방법 - STR_TO_DATE, DATE_SUB 활용

 

MySQL 날짜 타입 칼럼 데이터(Date Type column Data) 조회(검색) 방법 - STR_TO_DATE, DATE_SUB 활용

날짜를 저장할 때는 일반적으로 칼럼을 날짜 타입으로 만듭니다. 저장할 때는 쉽게 하는데, 막상 검색을 해서 가져오려고 하면 헤매는 경우가 종종 있습니다. 문자 타입이 아니다 보니, 칼럼을 문자로 변형하여 가..

han288.tistory.com

 

반응형

+ Recent posts