이 글에서는 성능 테스트를 위해 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개 행)