1.5GB 데이터베이스를 99% 압축하는 방법 공개!

by DD
5개월 전
조회수 38

1.5GB에 달하는 NHTSA VPIC 데이터베이스를 21MB로 압축하여 웹, 모바일 환경에서 사용 가능하게 함

불필요한 테이블 삭제, 인덱스 최적화, 데이터 분석을 통해 데이터베이스 크기를 획기적으로 줄임

개발자들은 데이터베이스 최적화의 중요성을 강조하며, 실제 적용 사례에 대한 높은 관심을 보임

데이터베이스 구조 분석 및 최적화 전략

데이터베이스 크기 축소를 위해 테이블 크기 분석을 수행하고, 불필요한 데이터를 제거하는 전략을 사용했다. 구체적으로, WMIYearValidChars 테이블 삭제를 통해 56%의 크기를 줄였으며, Pattern 테이블에서 불필요한 데이터를 제거하여 추가적인 공간을 확보했다. 따라서, 데이터 분석을 기반으로 한 최적화가 핵심 전략임을 알 수 있다.

인덱스 최적화 및 쿼리 성능 개선

데이터베이스의 읽기 성능을 향상시키기 위해, 쿼리 패턴을 분석하여 맞춤형 인덱스를 생성했다. 반면, 쓰기 성능에 최적화된 기존 인덱스는 제거하여 데이터베이스 크기를 줄였다. 결과적으로, WMI lookup, Schema lookup, Pattern matching에 대한 복합 인덱스를 생성하여 쿼리 속도를 개선했다.

실제 적용 사례 및 데이터베이스 압축

최적화된 데이터베이스를 배포하기 위해 gzip 압축을 적용하여 최종 21MB로 압축했다. 구체적으로, SQLite의 페이지 구조와 문자열 값의 반복, 정수 ID의 효율적인 압축을 활용했다. 따라서, 데이터 압축은 배포 크기를 줄이는 데 효과적이며, 테스트 스위트를 통해 최적화 과정에서 발생할 수 있는 문제를 방지했다.

How We Reduced a 1.5GB Database by 99%