MongoDB 에 색인 추가

4183 단어 MongoDB
MongoDB 는 문 서 를 더 빨리 찾 을 수 있 도록 집합 필드 에 색인 을 만 들 수 있 습 니 다.MongoDB 에 색인 을 추가 할 때 배경 에 특수 한 데이터 구 조 를 만 듭 니 다. 그 중에서 집합 한 일부분 의 데 이 터 를 저장 하고 이 데이터 구 조 를 최적화 시 켜 특정한 문 서 를 빨리 찾 을 수 있 도록 합 니 다.
    예 를 들 어 한id 인덱스 는 기본적으로 구축id 값 의 정렬 배열 입 니 다.이 색인 이 생 성 되면 다음 과 같은 혜택 을 얻 을 수 있 습 니 다.
  • 에 따라id 대상 을 찾 을 때 질서 있 는 색인 에 대해 최 적 화 된 검색 을 하고 상기 대상 을 찾 을 수 있 습 니 다.
  • 상 대 를id 정렬.색인 을 정렬 했 기 때문에 대상 을 다시 정렬 할 필요 가 없습니다.MongoDB 는 문서 의id 는 축소판 에 나타 나 는 순서 로 문 서 를 읽 으 면 됩 니 다.
  • 문 서 를 10 - 20 대로id 정렬 을 진행 합 니 다. 이 동작 은 슬라이스 일 뿐 입 니 다. 색인 에서 한 조각 을 꺼 내 서 을 얻 을 수 있 습 니 다.id 값, 이렇게 하면 대상 을 찾 을 수 있 습 니 다.
  • 가장 중요 한 것 은 질서 있 는id 값 의 목록, MongoDB 는 문 서 를 읽 을 필요 도 없 이 색인 에서 만 값 을 되 돌려 줍 니 다.

  •    하지만 이런 혜택 을 얻 으 려 면 대 가 를 치 러 야 한 다 는 것 을 기억 해 야 한다.다음은 색인 과 관련 된 비용 입 니 다.
  • 색인 은 디스크 와 메모리 의 공간 을 차지한다.
  • 문 서 를 삽입 하고 업데이트 할 때 색인 은 처리 시간 을 차지 합 니 다.따라서 데이터베이스 에 대량의 색인 을 가 진 집합 을 기록 하면 성능 손실 을 입 을 수 있다.
  • 집합 이 클 수록 자원 과 성능 에 대한 원가 가 커진다.매우 큰 집합 에 대해 서 는 일부 색인 을 사용 하 는 것 이 비 현실 적일 수 있다.

  •     몇 가지 서로 다른 유형의 색인 은 집합 필드 에 응용 되 어 서로 다른 디자인 요 구 를 인사말 할 수 있다.아래 표 는 서로 다른 색인 형식 을 보 여 줍 니 다.
    MongoDB 가 지원 하 는 색인 형식
    인덱스
    설명 하 다.
    _id
    사용 하 는 MongoDB 집합 은 기본적으로id 인덱스, 프로그램 이 지정 하지 않 으 면id 값, 드라이버 또는 mongodb 는 objectID 값 이 있 는 을 만 듭 니 다.id 필드.이id 색인 은 유일한 것 입 니 다. 클 라 이언 트 의 삽입 을 방지 할 수 있 습 니 다id 값 이 같은 두 문서
    단일 필드
    가장 기본 적 인 색인 유형 은 단일 필드 의 색인 입 니 다.이것 은 와 유사 하 다id 색인 이지 만 필요 한 필드 에 만 들 수 있 습 니 다. 이 축소판 은 오름차 나 내림차 순 으로 정렬 할 수 있 습 니 다.그 필드 의 값 은 유일한 것 이 아 닙 니 다.예 를 들 어 {name: 1}
    복합
    여러 필드 에 있 는 색인 을 지정 할 수 있 습 니 다.이 색인 은 첫 번 째 필드 의 값 에 따라 정렬 한 다음 두 번 째 필드 를 누 르 십시오.
    다 중 키
    저장 항목 배열 의 필드 를 추가 하면 배열 의 모든 요소 에 대한 단독 색인 도 생 성 됩 니 다.이것 은 색인 에 포 함 된 값 을 사용 하여 파일 을 더욱 빠르게 찾 을 수 있 게 한다.예 를 들 어 my Objects 라 는 대상 을 고려 할 때 대상 마다 score 필드 의 배열 이 있 습 니 다. {my Objects. score: 1}
    지리 공간의
    MongoDB 는 2D 나 2sphere 좌표 에 따라 지리 공간 색인 을 만 들 수 있 습 니 다.이것 은 지리 적 공간 위 치 를 응용 한 데 이 터 를 더욱 효과적으로 저장 하고 검색 할 수 있 게 한다.
    텍스트
    MongoDB 는 색인 내부 에 단어 에 포 함 된 문자열 요 소 를 빠르게 찾 을 수 있 도록 텍스트 색인 을 추가 하 는 것 을 지원 합 니 다.이 색인 은 the, a, and 와 같은 단 어 를 저장 하지 않 습 니 다.예: {connect: "text"}
    산열 하 다
    해시 기반 의 세 션 을 사용 할 때 MongoDB 는 해시 색인 을 사용 할 수 있 도록 합 니 다. 특정 서버 에 저 장 된 값 과 일치 하 는 해시 값 만 색인 할 수 있 습 니 다.이것 은 다른 서버 의 항목 의 산열 값 을 유지 하 는 비용 을 줄 였 다.예: {key: "hashed"}
        색인 에 특정한 속성 을 설정 하여 MongoDB 가 색인 을 어떻게 처리 하 는 지 정의 할 수 있 습 니 다.
  • unique: 이 속성 강제 색인 은 필드 마다 하나의 인 스 턴 스 만 포함 하기 때문에 MongoDB 는 색인 에 있 는 값 과 중복 되 는 문서
  • 의 가입 을 거부 합 니 다.
  • sparse: 이 속성 은 색인 필드 가 있 는 문서 항목 만 포함 하도록 합 니 다.이 색인 은 색인 이 포함 되 지 않 은 필드 의 문 서 를 건 너 뜁 니 다
  • .
  • TTL: TTL 또는 생존 기간, 색인 은 이 어머니 를 사용 하여 문서 가 색인 에 만 일정 시간 존재 할 수 있 도록 합 니 다 (예 를 들 어 일정 시간 후에 정리 해 야 할 로그 항목 이나 이벤트 데이터).이 색인 은 삽입 시간 을 추적 하고 만 료 된 최초의 항목 을 삭제 합 니 다.

  •    색인 필드 에 중복 값 이 있 는 문 서 를 색인 하 는 것 을 거부 하고 색인 필드 가 포함 되 지 않 은 모든 문 서 를 거부 할 수 있 습 니 다.
        MongoDB 셸, MongoDB Node. js 네 이 티 브 클 라 이언 트 나 Mongoose 에서 색인 을 만 들 수 있 습 니 다.MongoDB 셸 에서 색인 을 만 들 려 면 ensureIndex (index, properties) 방법 을 사용 해 야 합 니 다.예 를 들 면:
    db.myCollection.ensureIndex({name:1},{background:true,unique:true,sparse:true})

         background 옵션 은 만 든 색인 을 셸 의 프론트 에 보 낼 지 백 엔 드 에 보 낼 지 지정 합 니 다.프론트 데스크 에서 실행 되 는 속도 가 빠 르 지만 더 많은 시스템 자원 을 차지 합 니 다.그래서 생산 시스템 의 피크 시기 에 프런트 에서 운행 하 는 것 은 좋 은 생각 이 아니다.
      MongoDB Node. js 네 이 티 브 드라이버 에서 색인 을 만 들 려 면 Db 대상 의 인 스 턴 스 에서 ensureIndex (collection, index, options, callback) 방법 을 호출 할 수 있 습 니 다.예 를 들 면:
    var MongoClient = require('mongdb').MongoClient;
    MongoClient.connect(",ongodb://localhost/",function(err,db){
    	db.ensureIndex('myCollection',{name:1},
    		{background:true,unique:true,sparse:true},
    		function(err){
    			if(!err)console.log("Index Created");
    		});
    });

        Mongoose 의 Schema 대상 을 사용 하여 색인 을 만 들 려 면 이 모드 의 필드 에 index 옵션 을 설정 할 수 있 습 니 다. 예 를 들 어:
    var s= new Schema({name:{type:string,index:true,unique:true}});

        너 도 나중에 index () 방법 을 사용 하여 패턴 대상 에 색인 을 추가 할 수 있다.예 를 들 면:
    s.schema.path('some.path').index({unique:true,sparse:true});

    좋은 웹페이지 즐겨찾기