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 INDEXBULKLOADDATA_IDX ONBULKLOADDATA_TBL ( K );