AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Queryable Encryption 스토리지에 미치는 영향 추정

Queryable Encryption 으로 필드 암호화하고 암호화됨 필드에 대한 쿼리를 활성화하면 컬렉션 에 필요한 저장 늘어납니다. 증가분을 변경하려면 컬렉션 다시 생성해야 하므로 암호화 스키마 확정하기 전에 이러한 증가분을 예상해 보세요.

공개 리포지토리 또는 mongodb 또는 mongodb-atlas 플러그인에서 직접 사용할 수 있는 mongodb-qe-size-estimation 에이전트 스킬 사용하여 컬렉션 에 대한 이러한 추정치를 계산할 수 있습니다.

Queryable Encryption 에 대한 자세한 내용은 Queryable Encryption 백서를 참조하세요.

MongoDB 태그 T를 생성하여 쿼리 가능한 각 암호화됨 필드 인덱싱하고, 암호화됨 모든 컬렉션 에 대해 생성하는 메타데이터 컬렉션에 이 태그를 저장합니다. 각 값이 생성하는 태그 수에 따라 스토리지가 증가합니다. 아래 공식은 값이 생성할 수 있는 최대 태그 수에 대한 것입니다.

  • 쿼리할 수 없는('인덱싱되지 않은') 필드는 태그를 생성하지 않습니다(T=0).

  • 동일성 쿼리에 대해 인덱싱된 필드는 T=1라는 하나의 태그를 지정하다 생성합니다.

  • 접두사 또는 접미사 쿼리에 대해 인덱싱된 필드는 하나의 초기 태그를 지정하다 생성한 다음, 쿼리의 최대 길이와 최소 길이의 차이인 T = 1 + (strMaxQueryLength - strMinQueryLength + 1)에 따라 선형적으로 증가합니다.

  • 접두사 및 접미사 쿼리 모두에 대해 인덱싱된 필드는 접두사 및 접미사 쿼리의 최대 및 최소 길이 간의 차이에 따라 선형적으로 증가합니다. T = 1 + (strMaxQueryLength_prefix - strMinQueryLength_prefix + 1) + (strMaxQueryLength_suffix - strMinQueryLength_suffix + 1)

  • 하위 문자열 쿼리에 대해 인덱싱된 필드는 T = 1 + (strMaxQueryLength - strMinQueryLength + 1) * (2 * strMaxLength + 2 - strMaxQueryLength - strMinQueryLength) / 2 수식을 사용하여 가장 많은 태그를 생성합니다.

컬렉션 에서 Queryable Encryption 활성화하면 디스크 저장 및 메모리에 영향 계산된 것보다 적을 가능성이 높습니다. 이 공식은 최악의 경우를 방지합니다.

중요

암호화됨 필드 값을 쓰기 (write) 마다 태그를 지정하다 당 2개의 메타데이터 문서(1개는 ESC, 다른 하나는 ECOC에 기록되므로 쓰기 (write) 처리량 은 저장 와 동일한 방식으로 태그를 지정하다 수에 따라 확장됩니다.

접두사 및 접미사 쿼리의 경우 최대 쿼리 길이와 최소 쿼리 길이의 차이만 태그를 지정하다 증가에 기여합니다. 하위 문자열 쿼리의 경우 모든 매개변수가 영향을 미치며, 검색 가능한 길이가 가장 큰 영향을 미칩니다. 다음 표는 strMaxLength이 50이고 strMinQueryLength가 2라고 가정하고, strMaxQueryLength이 증가함에 따라 문자열 필드 생성하는 태그 수를 비교합니다. 하위 문자열 쿼리는 최대 strMaxQueryLength의 6를 시행하다 , 이 표는 접두사 및 접미사 쿼리에서 더 높은 값을 허용하더라도 2부터 6까지의 값만 비교합니다.

strMaxQueryLength
2
3
4
5
6

prefix or suffix

2

3

4

5

6

substring

50

98

145

191

236

이러한 성장 때문에 둘 이상의 필드 에서 하위 문자열 쿼리를 활성화하지 않도록 합니다. 접두사 및 접미사 쿼리가 요구 사항을 충족할 수 없고 컬렉션 에 포함된 문서가 50 백만 미만인 경우에만 활성화합니다.

다음 정보가 있는지 확인합니다.

  • 암호화됨 필드가 포함된 컬렉션 의 문서 수입니다.

  • 암호화됨 각 필드의 일반 텍스트 값에 대한 평균 바이트 길이입니다.

  • 암호화하려는 필드 수와 암호화됨 쿼리 구성입니다.

1

암호화됨 각 필드 에 대해 단일 값이 생성하는 태그 수의 상한인 T를 계산합니다. 필드 당 하나의 T 계산 : 접두사 및 접미사 쿼리 모두에 대해 인덱싱된 필드 두 쿼리 유형을 결합한 단일 수식을 사용합니다.

  1. 인덱싱되지 않은 필드의 경우 T = 0입니다.

  2. 동일성 쿼리에 대해 인덱싱된 필드의 경우 T = 1입니다.

  3. prefix 또는 suffix 쿼리에 대해 인덱싱된 필드의 경우:

    T = 1 + (strMaxQueryLength - strMinQueryLength + 1)
  4. prefix 및 suffix 쿼리 모두에 대해 인덱싱된 필드의 경우:

    T = 1 + (strMaxQueryLength_prefix - strMinQueryLength_prefix + 1) +
    (strMaxQueryLength_suffix - strMinQueryLength_suffix + 1)
  5. substring 쿼리에 대해 인덱싱된 필드의 경우:

    T = 1 + (strMaxQueryLength - strMinQueryLength + 1) *
    (2 * strMaxLength + 2 - strMaxQueryLength -
    strMinQueryLength) / 2

    예시 들어 strMinQueryLength 2, strMaxQueryLength 6 및 strMaxLength 50가 있는 필드 의 경우:

    T = 1 + (6 - 2 + 1) * (2 * 50 + 2 - 6 - 2) / 2
    = 1 + 5 * 94 / 2
    = 236
2

이전 단계의 태그를 지정하다 수를 사용하여 단일 문서 필드 에 필요한 저장 을 바이트 단위로 계산합니다. 다음 공식을 사용하며, 여기서 v은 필드 암호화되지 않은 값의 평균 바이트 길이입니다.

인덱싱되지 않은 필드의 경우 다음을 사용합니다.

document storage = 71 + ceil((v+6)/16) * 16

다른 필드의 경우 다음을 사용합니다.

document storage = 1.2 * (255 * T + 122 + ceil((v + 6) / 16) * 16)

문서가 크기 제한 내에 있는지 확인합니다. 암호화된 값과 해당 메타데이터 는 16MB BSON 문서 크기 제한에 포함됩니다.

3

모든 필드 의 T 값을 T_Total로 합산합니다. 그런 다음 암호화됨 필드가 포함된 문서 수 N를 사용하여 다음을 바이트 단위로 계산합니다.

index storage = 1.2 * (67 * T_Total + 640)
total disk storage = N * (index storage + sum of the document storage per field)
memory = N * (52 * T_Total + 17)

1,000,000,000로 나누어 총 디스크 저장 GB 로 변환합니다. 1,073,741,824로 나누어 메모리를GiB로 변환합니다.

4

현재 컬렉션 크기에 예상 디스크 및 메모리 영향 추가한 다음 배포서버 에서 사용 가능한 저장 및 메모리와 합계를 비교합니다.

  • 배포서버 가 저장 및 메모리 요구 사항을 충족하는 경우 암호화 스키마 생성을 계속 진행합니다.

  • 배포서버 요구 사항을 충족하지 않는 경우 다음 옵션을 고려하세요.

    • 하위 문자열 쿼리를 접두사 또는 접미사 쿼리로 바꾸기

    • 하위 문자열 쿼리에 대해 인덱싱된 필드에서 strMaxLength 줄이기

    • 하위 문자열 쿼리에 대해 인덱싱된 필드에서 strMinQueryLength와 strMaxQueryLength 사이의 범위 좁히기

암호화됨 필드의 쿼리 구성 옵션에 대한 자세한 내용은 필드 참조를 확인하세요.

암호화됨 필드 및 쿼리 유형을 구성하려면 암호화 스키마 생성을 참조하세요.

각 구성 옵션이 보안 및 성능에 미치는 영향을 학습 보려면 최적의 검색 및 저장을 위해 암호화된 필드 구성을 참조하세요.