cleanUrl: /posts/mongo-db-configuration-compressor/

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a22f7277-62cb-4714-961f-0c63f6f3990c/mongodb.png

Compressor 에 대해 알아보자

어느 DB를 다루든 늘 성능은 예민한 문제이다. 먼저 쿼리 튜닝을 포함해 다양한 방법이 있지만, 그에 앞서 필요한 설정을 해두고 쿼리 튜닝을 한다면 더욱 효과적인 성능을 기대할 수 있지 않을까?

config 파일에 보면

storage.wiredTiger.engineConfig.journalCompressor
storage.wiredTiger.collectionConfig.blockCompressor

라는 부분에서 내가 필요한 방식으로 index와 collection 압축을 선택할 수 있다. 이런 부분에서 압축을 선택하는 목적은 CPU에 효율을 가져오기 위해서 이다.

storage.wiredTiger.collectionConfig.blockCompressor

collection 의 데이터를 기본으로 압축하는 타입을 결정한다

선택 가능한 값으로는

4가지 옵션이 있다. 이 옵션으로 압축을 선택하면 collection 의 모든 데이터에 압축을 결정할 수 있다.

만약 이미 live 인 상태에서 이 옵션을 수정하게 된다면, 기존에 저장 된 데이터는 기존 압축 방법대로 저장되어 있으며, 새로 저장하는 데이터는 변경된 옵션의 압축 방식을 적용받게 된다.

1. none

말 그대로 압축을 하지 않는다. 별로 살펴볼게 없다.

2. snappy

MongoDB를 설치하고 별도의 설정값을 변경하지 않았다면 snappy 가 default 이다. MongoDB는 WiredTiger 엔진을 사용하는데 이 엔진에서 사용하는 기본값이다.