PostgreSQL generate_series함수를 사용해서 대량 데이터 작성하기

PostgreSQL

이 글에서는 성능 테스트를 위해 PostgreSQL에서 임의에 대량의 데이터를 작성하는 방법을 소개합니다.

generate_series함수를 이용한 레코드 작성

$ psql -d postgres
postgres-# create table test001 ( a1 varchar(4), a2 varchar(4), a3 varchar(5));
postgres=# insert into test001 select format('k%s',i),format('l%s',i),format('m%s',i) from generate_series(1,10) as i;
INSERT 0 10
postgres=# SELECT * FROM test001;
 a1  | a2  | a3
-----+-----+-----
 k1  | l1  | m1
 k2  | l2  | m2
 k3  | l3  | m3
 k4  | l4  | m4
 k5  | l5  | m5
 k6  | l6  | m6
 k7  | l7  | m7
 k8  | l8  | m8
 k9  | l9  | m9
 k10 | l10 | m10
(10개 행)

각 명령의 설명

psql명령으로 PostgreSQL서버에 접속

클라이언트, 서버가 같은 환경인 경우 호스트 및 유저 정보를 생략해도 PostgreSQL서버의 기본 데이터베이스 postgres에 접속 할 수 있습니다.

$ psql -d postgres
psql (12.7)
도움말을 보려면 "help"를 입력하십시오.
postgres=#

테이블을 작성

다음과 같이 a1,a2,a3 항목으로 구성된 test001 테이블을 작성합니다.

postgres=# create table test001 ( a1 varchar(15), a2 varchar(15), a3 varchar(15));
CREATE TABLE
postgres=#

대량 데이터 삽입

다음과 같이 generate_series함수를 이용해 대량 데이터를 select insert할 수 있습니다.

postgres=# insert into test001 select format('k%s',i),format('l%s',i),format('m%s',i) from generate_series(1,1000000) as i;
INSERT 0 1000000

작성 데이터 확인

다음과 같이 삽입된 대량 데이터의 레코드 수를 확인합니다.

postgres=# SELECT count(*) FROM test001;
 count
-------
1000000
(1개 행)
제목과 URL을 복사했습니다