반응형
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', '다' )
2019/12/06 - [유용한 활용팁] - PHP 마지막 문자 콤마(,) 제거 방법 - substr, rtrim, trim, implode
2019/12/08 - [유용한 활용팁] - PHP 문자 암호화하여 Form 전송하기 - mcrypt_encrypt, mcrypt_decrypt, bin2hex, pack
2019/11/17 - [유용한 활용팁] - PHP 2차원 Array에서 unset후 배열 index 재 정렬 방법
반응형
'유용한 활용팁' 카테고리의 다른 글
CSS3 한줄 처리 방법, inherit 의미 (0) | 2019.12.18 |
---|---|
CSS3 float left로 인한 영역 깨짐 현상 처리 방법 및 last-child 사용법 (0) | 2019.12.17 |
MySQL 엑셀을 이용하여 대용량 데이터 대량 INSERT 문장 만들기 (0) | 2019.12.12 |
PHP 문자 암호화하여 Form 전송하기 - mcrypt_encrypt, mcrypt_decrypt, bin2hex, pack (0) | 2019.12.08 |
PHP 마지막 문자 콤마(,) 제거 방법 - substr, rtrim, trim, implode (0) | 2019.12.06 |