찾다

 >  Q&A  >  본문

Mongodb 제한된 쿼리 반환 필드 쿼리가 더 느립니까?

find를 사용하여 모든 필드를 직접 반환했을 때 결과는 다음과 같으며 쿼리 시간은 155입니다

반환 필드가 제한되면 쿼리 시간이 길어지며 쿼리 시간은 251

입니다.

왜? 반환되는 필드를 제한하면 쿼리 문자 바이트가 작아집니다. 전송이 더 빨라야 하지 않나요?

大家讲道理大家讲道理2749일 전853

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-17 10:06:05

    귀하가 게시한 실행 계획에는 주로 다음 정보가 공개됩니다.

    1. 첫 번째 실행 계획:

    인덱스를 사용하지 않기 때문에 collscan에서는 전체 컬렉션 스캔임을 나타내므로 인덱스 생성을 고려해 볼 수 있습니다

    2. 두 번째 실행 계획:

    여전히 전체 컬렉션 스캔이며 조건을 충족하는 문서가 메모리로 스캔되고 메모리에서 프로젝션이 완료되어 지정된 필드가 선택되고 해당 필드가 반환됩니다. 이렇게 되면 시간이 더 걸릴 것 같습니다.

    지정된 필드만 반환되지만, 저장소를 읽거나 전체 모음을 스캔하는 경우 전체 문서만 반환될 수 있습니다. 이것은 아마도 데이터베이스의 몇 가지 기본 원칙일 것입니다. 또한 일부 열 형식 데이터베이스는 상상했던 상황이지만 많은 데이터베이스는 행 또는 문서에 따라 저장됩니다.

    지정된 필드에 포함된 인덱스를 생성하고 지정된 필드만 반환하는 경우 인덱스를 스캔해야만 지정된 필드를 반환할 수 있으므로 이것이 가장 효율적입니다.

    참고로.

    MongoDB를 사랑해주세요! 재미있게 보내세요!

    회신하다
    0
  • 취소회신하다