INSERT 문을 좀 더 빠르게

'INSERT'문을 10번 실행 하는 것 보다 'INSERT'문 한번에 10개의 데이터를 입력하는 것이 더 빠르다.

1
2
3
4
INSERT INTO `Table` (`column1`, `column2`, `column3`) VALUES ("value1", "value2", "value3");
INSERT INTO `Table` (`column1`, `column2`, `column3`) VALUES ("value1", "value2", "value3");
INSERT INTO `Table` (`column1`, `column2`, `column3`) VALUES ("value1", "value2", "value3");
.... 생략

주의 할 점은 INSERT 문 한번에 데이터를 입력 할 수 있는 양이 1000개로 제한되어 있다는 것.(이를 넘길 경우 에러를 발생시킨다)

1
2
3
4
5
6
7
8
INSERT INTO `Table`
    (`column1`, `column2`, `column3`)
VALUES
    ("value1", "value2", "value3"),
    ("value1", "value2", "value3"),
    ("value1", "value2", "value3"),
    .... 생략
    ("value1", "value2", "value3");

외래기(forign key) 를 잠시 비 활성화 하기(FOREIGN_KEY_CHECKS)

INSERT 를 하기전에 외래키를 잠시 비 활성화시키고, INSERT 가 끝나면 다시 활성화시킨다.

1
2
3
4
5
6
7
8
9
10
11
12
SET FOREIGN_KEY_CHECKS = 0;
 
INSERT INTO `Table`
    (`column1`, `column2`, `column3`)
VALUES
    ("value1", "value2", "value3"),
    ("value1", "value2", "value3"),
    ("value1", "value2", "value3"),
    .... 생략
    ("value1", "value2", "value3");
 
SET FOREIGN_KEY_CHECKS = 1;