-
[오라클, MySQL] 다중 INSERT, BULK INSERTDB 2020. 5. 16. 17:23
우리가 데이터베이스에 쿼리를 실행하기 위해서는 여러가지 단계가 필요하다
DBMS로 예를 들면
1. Database의 접속정보를 이용해 접속한다.
2. Command창을 연다.
3. Command창에 쿼리를 입력 후 실행한다.
4. Command창을 닫는다.
5. Database와 접속을 끊는다.(DBMS를 끈다.)
100개의 쿼리를 실행하기 위해서는 500번의 동작이 필요하다.
실제로 우리가 해야할 일은 100개인데 부가적인 일이 너무 많다.
위의 일을 줄여보자.
1. 데이터베이스에 매번 접속하지 말자.
=> Database Connection Pool을 사용하여 미리 100개의 Connection 객체를 만들어두고
필요 시 Pool에서 Connection 객체를 꺼내 사용 후 반환
2. COMMAND창을 열고 닫는것을 줄이자
=> Batch 작업, INSERT의 경우 BULK INSERT 등등
우리가 해야할 건 한번의 연결에 최대한 많은 쿼리를 실행하는것이다.
Batch 작업
=> SqlDeveloper의 경우 실행할 쿼리를 드래그 후 F5를 눌러 한번에 쿼리를 실행하는 기능
BULK INSERT(다중 INSERT)
=>
[ORACLE]
INSERT ALL
INTO 테이블1 VALUES('값1','값2','값3',...,'값5')
INTO 테이블1 VALUES('값1','값2','값3',...,'값5')
INTO 테이블2 VALUES('값1','값2','값3')
.
.
.
INTO 테이블2 VALUES('값1','값2','값3')
SELECT * FROM DUAL
[MySQL]
INSERT INTO 테이블1 VALUES ('값1','값2','값3',...,'값5'),('값1','값2','값3',...,'값5'),....,('값1','값2','값3',...,'값5')
'DB' 카테고리의 다른 글
[오라클, MySQL] Merge Into(있으면 Update, 없으면 Insert) (0) 2020.05.16 [오라클, MySql] 문자열 채우기(LPAD, RPAD) (0) 2020.05.05