StoryCode

속도.postgres vs mariad

Database 관리/PostgreSQL
반응형

# 참조 : https://techblog.woowahan.com/6550/

 

# 설치편 먼저 볼 것.

 

Test Machine Spec) DELL Notebook i7 5500U 2C4T 16GMem SSD, Ubuntu 22

 

1) 1000 M Bulk Load Test

Data 1000MB 1000만건) 포맷은 아래 사진 참조

1.1) postgres 테스트

psql # \c service4loadtest;

psql # CREATE TABLE BULKLOADDATA_TBL (
  A date default NULL,  B date default NULL,
  C varchar(10) default NULL,  D varchar(10) default NULL,  E varchar(10) default NULL,  F varchar(10) default NULL,
  G varchar(10) default NULL,  H varchar(10) default NULL,  I varchar(10) default NULL,  J varchar(10) default NULL,
  K integer default NULL,  L integer default NULL,  M integer default NULL,  N integer default NULL,
  O integer default NULL
);

 

psql # \dt

psql # copy bulkloaddata_tbl (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) from '/var/lib/postgresql/databaseloadtest/loadtest.dat'

결론 ) 23초 소요

 

 

mariadb )

mariadb # mysql -uroot -p

mariadb # create database service4loadtest;

mariadb # use service4loadtest;

CREATE TABLE BULKLOADDATA_TBL (
  A date default NULL,  B date default NULL,
  C varchar(10) default NULL,  D varchar(10) default NULL,  E varchar(10) default NULL,  F varchar(10) default NULL,
  G varchar(10) default NULL,  H varchar(10) default NULL,  I varchar(10) default NULL,  J varchar(10) default NULL,
  K int(11) default NULL,  L int(11) default NULL,  M int(11) default NULL,  N int(11) default NULL,
  O int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

mariadb # LOAD DATA INFILE '/home/user/databaseloadtest/loadtest.dat'
INTO TABLE BULKLOADDATA_TBL
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);

결과 ) 41 초 소요

 

2) UPDATE 1000만건

psql # UPDATE BULKLOADDATA_TBL SET K = TRUNC(RANDOM() * 10000000);

결론) 35 초

 

mariadb # UPDATE BULKLOADDATA_TBL SET K = FLOOR(RAND() * 10);

결론) 51 초

 

3) 인덱스 생성 1000만건

psql # CREATE INDEX BULKLOADDATA_IDX ON BULKLOADDATA_TBL  ( K );

결론) 6초

mariadb # CREATE INDEX BULKLOADDATA_IDX ON BULKLOADDATA_TBL  ( K );

결론) 32초

 

4) 정수 Max SELECT 1000만건

psql # SELECT MAX(K) FROM BULKLOADDATA_TBL;

결론) 즉시

mariadb # SELECT MAX(K) FROM BULKLOADDATA_TBL;

결론) 0.001 초

 

5) 정수 SUM 1000만건

psql # SELECT SUM(K) FROM BULKLOADDATA_TBL;

결론) 1.5초

mariadb # SELECT SUM(K) FROM BULKLOADDATA_TBL;

mariadb # 2.5초

 

6) 

 

 

반응형