Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 일괄 삽입(Batch Insert) 수행하는 방법 총정리

MySQL에서 대량의 데이터를 한 번에 입력해야 할 때, 레코드를 하나씩 INSERT 하는 것은 비효율적입니다. 이럴 때 일괄 삽입(Batch Insert)을 사용하면 하나의 INSERT 문으로 여러 개의 레코드를 동시에 추가할 수 있습니다. 핵심은 모든 컬럼 값을 괄호로 묶고, 각 레코드 사이를 쉼표(,)로 구분하는 것입니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 만들어 보겠습니다. 아래는 CREATE 명령어를 사용하여 테이블을 생성하는 구문입니다.

mysql> CREATE table MultipleRecordWithValues
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.88 sec)

2. 일괄 삽입 기본 문법

일괄 삽입의 기본적인 문법은 다음과 같습니다.

INSERT into yourTableName values(column1,column2,....N),(column1,column2,....N),(column1,column2,....N),...........N;

즉, VALUES 절 다음에 각 행의 데이터를 괄호 ()로 감싸고, 여러 행을 쉼표로 연결하면 됩니다.

3. 일괄 삽입 실행 예제

위 문법을 실제로 적용하여 한 번에 4개의 레코드를 삽입해 보겠습니다.

mysql> insert into MultipleRecordWithValues values(1,'John'),(2,'Carol'),(3,'Bob'),(4,'Smith');
Query OK, 4 rows affected (0.16 sec)
Records: 4 Duplicates: 0 Warnings: 0

실행 결과 "4 rows affected" 메시지가 출력되었으므로, 4개의 레코드가 성공적으로 삽입된 것을 확인할 수 있습니다.

4. SELECT로 삽입 결과 확인하기

모든 레코드가 테이블에 정상적으로 저장되었는지 확인하려면 SELECT 명령어를 사용합니다.

mysql> select *from MultipleRecordWithValues;

다음은 실행 결과입니다.

+------+-------+
| id | name |
+------+-------+
| 1 | John |
| 2 | Carol |
| 3 | Bob |
| 4 | Smith |
+------+-------+
4 rows in set (0.00 sec)

마무리

이처럼 MySQL에서는 VALUES 절에 여러 행의 값을 쉼표로 구분하여 나열함으로써 단 한 번의 쿼리로 다수의 레코드를 삽입할 수 있습니다. 일괄 삽입은 네트워크 왕복 횟수와 쿼리 파싱 오버헤드를 줄여주기 때문에, 대량의 데이터를 처리할 때 개별 INSERT 문을 반복 실행하는 방식보다 훨씬 빠른 성능을 제공한다는 점도 기억해 두면 좋습니다.