네트워크 트래픽 압축
이 페이지의 내용
개요
PyMongo 는 메시지를 압축하는 연결 옵션을 제공하여 MongoDB 와 애플리케이션 간에 네트워크를 통해 전달되는 데이터의 양을 줄입니다.
PyMongo는 다음 압축 알고리즘을 지원합니다.
Snappy: MongoDB 3 에서 사용6 가능합니다. 이상. 이 옵션을 사용하려면 python-snappy 패키지 가 필요합니다.
zlib:.MongoDB 3 6 이상에서 사용할 수 있습니다. 이 옵션을 사용하려면 Python v1 의 표준 라이브러리에 포함된 zlib 모듈이 필요합니다.5 그리고 나중에.
Zstandard: MongoDB 4 에서 사용2 가능합니다. 이상. 이 옵션을 사용하려면 zstandard 가 필요합니다. 패키지.
압축 알고리즘을 지정하지 않으면 PyMongo는 네트워크 트래픽을 압축하지 않습니다. 여러 압축 알고리즘을 지정하는 경우 드라이버는 MongoDB 인스턴스에서 지원하는 목록에서 첫 번째 압축 알고리즘을 선택합니다.
압축 알고리즘 지정
MongoDB 인스턴스 에 대한 연결에 압축을 활성화 하려면 compressors
연결 옵션을 사용하고 사용할 압축 알고리즘을 지정합니다. 두 가지 방법으로 이 작업을 수행할 수 있습니다.
알고리즘을
MongoClient
생성자에 인수로 전달합니다.연결 string 에 알고리즘을 지정합니다.
다음 코드 예제에서는 두 옵션을 모두 보여줍니다.
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=snappy,zstd,zlib") client = pymongo.MongoClient(uri)
zlib 압축 수준 설정
압축 알고리즘 중 하나로 zlib
을 지정하는 경우 zlibCompressionLevel
옵션을 사용하여 압축 수준을 지정할 수도 있습니다. 이 옵션은 -1
~ 9
사이의 정수 값을 사용할 수 있습니다.
-1: (기본값). zlib 는 기본값 압축 수준(일반적으로
6
)을 사용합니다.0: 압축하지 않습니다.
1: 속도가 가장 빠르지만 압축률은 가장 낮습니다.
9: 압축률은 가장 높지만 속도가 가장 느립니다.
다음 코드 예시 에서는 zlibCompressionLevel
옵션에 대해 zlib
압축 알고리즘 과 1
값을 지정합니다.
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "zlib", zlibCompressionLevel=1)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=zlib" "zlibCompressionLevel=1") client = pymongo.MongoClient(uri)