Apache Derby & Postgresql & DB2 성능 비교

2008. 12. 8. 15:40Database


3개의 데이터베이스를 다각도의 쿼리 응답속도로 비교해 보았다.

Linux Ubuntu 8.10 이고 모두 로컬에 설치

10 만건 테스트

======================aderby 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =25952 ms.
테이블 생성 >> 걸린 시간 =137 ms.
트랜잭션 테이블 데이터 50000개 입력 >> 걸린 시간 =23482 ms.
50000개 개별 입력 >> 걸린 시간 =70563 ms.
100000개의 데이터 가져오기 결과=99999 >> 걸린 시간 =2057 ms.
like Text검색 데이터 가져오기 결과=99999 >> 걸린 시간 =1844 ms.
단일 검색 = 99999 >> 걸린 시간 =122 ms.
100000개 를 정렬해서 가져오기 결과=99999 >> 걸린 시간 =3781 ms.
======================postgresql 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =79 ms.
테이블 생성 >> 걸린 시간 =43 ms.
트랜잭션 테이블 데이터 50000개 입력 >> 걸린 시간 =14582 ms.
50000개 개별 입력 >> 걸린 시간 =32746 ms.
100000개의 데이터 가져오기 결과=99999 >> 걸린 시간 =1687 ms.
like Text검색 데이터 가져오기 결과=99999 >> 걸린 시간 =1746 ms.
단일 검색 = 99999 >> 걸린 시간 =30 ms.
100000개 를 정렬해서 가져오기 결과=99999 >> 걸린 시간 =1686 ms.
======================db2 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =305 ms.
테이블 생성 >> 걸린 시간 =79 ms.
트랜잭션 테이블 데이터 50000개 입력 >> 걸린 시간 =12540 ms.
50000개 개별 입력 >> 걸린 시간 =70549 ms.
100000개의 데이터 가져오기 결과=99999 >> 걸린 시간 =1256 ms.
like Text검색 데이터 가져오기 결과=99999 >> 걸린 시간 =1169 ms.
단일 검색 = 99999 >> 걸린 시간 =255 ms.
100000개 를 정렬해서 가져오기 결과=99999 >> 걸린 시간 =2073 ms.

5만건

======================aderby 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =506 ms.
테이블 생성 >> 걸린 시간 =56 ms.
트랜잭션 테이블 데이터 25000개 입력 >> 걸린 시간 =10956 ms.
25000개 개별 입력 >> 걸린 시간 =30688 ms.
50000개의 데이터 가져오기 결과=49999 >> 걸린 시간 =1044 ms.
like Text검색 데이터 가져오기 결과=49999 >> 걸린 시간 =939 ms.
단일 검색 = 49999 >> 걸린 시간 =59 ms.
50000개 를 정렬해서 가져오기 결과=49999 >> 걸린 시간 =1379 ms.
======================postgresql 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =71 ms.
테이블 생성 >> 걸린 시간 =35 ms.
트랜잭션 테이블 데이터 25000개 입력 >> 걸린 시간 =6841 ms.
25000개 개별 입력 >> 걸린 시간 =14946 ms.
50000개의 데이터 가져오기 결과=49999 >> 걸린 시간 =811 ms.
like Text검색 데이터 가져오기 결과=49999 >> 걸린 시간 =805 ms.
단일 검색 = 49999 >> 걸린 시간 =16 ms.
50000개 를 정렬해서 가져오기 결과=49999 >> 걸린 시간 =823 ms.
======================db2 성능 테스트 =====================
테이블 삭제 >> 걸린 시간 =671 ms.
테이블 생성 >> 걸린 시간 =155 ms.
트랜잭션 테이블 데이터 25000개 입력 >> 걸린 시간 =6398 ms.
25000개 개별 입력 >> 걸린 시간 =19221 ms.
50000개의 데이터 가져오기 결과=49999 >> 걸린 시간 =640 ms.
like Text검색 데이터 가져오기 결과=49999 >> 걸린 시간 =601 ms.
단일 검색 = 49999 >> 걸린 시간 =13 ms.
50000개 를 정렬해서 가져오기 결과=49999 >> 걸린 시간 =1184 ms.

결과적으로
1. Apache Derby 는 설치 및 사용이 쉬우니 중간급 사용시에 좋을듯 특히 파일 DB에
2. Postgresql은 중소형에 적합. 전체 적으로 빠르네. 단일 검색이니 Select가 대단히 빠르다.
    즉 입력이 별로 없는 조회중심이면 이쪽 디비가 낳다.

3. DB2 는 특히 풀텍스트 검색은 압권이다. 로드가 많이 걸릴수록 진가를 발휘한다.
    그러나 Select가 좀 오래 걸린다.( 검색에 강점을 보인다. ), 개별 입력도 Postgresql에 많이 딸리낟. 2배차이라니..