>백엔드 개발 >PHP 튜토리얼 >Mongo 인덱스에 대한 몇 가지 참고 사항

Mongo 인덱스에 대한 몇 가지 참고 사항

不言
不言원래의
2018-07-09 10:11:221866검색

이 기사에서는 특정 참조 가치가 있는 Mongo 인덱스에 대한 몇 가지 지침을 주로 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참조할 수 있습니다.

인덱스 사용 시나리오

우수: 쿼리 속도 향상

단점: 삭제 증가 추가 오버헤드 생성 및 공간 차지

팁: 컬렉션에 있는 데이터의 절반 이상을 반환하고 전체 테이블 스캔은 매우 효율적입니다

인덱스 기본

기본 작업

인덱스 보기: db.test.getIndexes()

인덱스 생성: db.test.ensureIndex({"username":1},{"Background":true,"name":"index_test_name"}) //데이터 양이 많을 경우 실행 가능 차단하지 않고 백그라운드에서

인덱스 삭제: db.test.dropIndex({"username":1})

인덱스 크기 보기: db.test.totalIndexSize()

Attributes

인덱스 순서:

1은 양수, -1은 역순

복합 인덱스의 순서(id: 1, age:-1)에 주의하세요.

색인 속성:

  • Uniqueness

db.test.ensureIndex({x:1,y:1},{unique:true})
  • Sparseness

db.test.ensureIndexx({},{sparse:true/false})
不稀疏(默认):
1. 可插入不存在索引字段的数据,null; 
2. 可筛选不存在字段: db.test.find({m:{$exist:ture}})
稀疏:

최적화 분석 방법

  • explain

    시스템에서 요청을 처리하는 방법 알아보기

cursor  返回游标类型(BasicCursor或BtreeCursor)
nscanned  被扫描的文档数量
n 返回的文档数
millis  耗时(毫秒)
indexBounds  所使用的索引
  • hint

    색인 강제 사용

db.test.find({"age":20}).hint({"name":1,"age":1}) // .hint(name_1_age_1)
  • profile

    설정 느린 쿼리를 기록하기 위한 로그 수준

Tips

  1. 쿼리 조건의 순서를 자동으로 조정

  2. 접두사 정규 표현식의 경우 인덱스(/^z/)를 적중할 수 있음

  3. 인덱스 만들기 모든 데이터를 메모리에 로드하지 않기 위해 많은 정렬이 필요한 키의 경우

  4. $ne, $nin은 인덱스를 사용하지 않습니다

index type

  • _id index

  • single key index

  • multi-key index compound index

  • expired index afull text index geographical location index the 위의 전체 내용은이 기사입니다 모든 분들의 공부에 도움이 됩니다. 더 많은 관련 내용을 보시려면 PHP 중국어 홈페이지를 주목해주세요!
  • 관련 권장 사항:

  • Swoole 메모리 작업 소개(표)

  • WordPress 이미지 주소를 상대 경로로 수정하는 방법

위 내용은 Mongo 인덱스에 대한 몇 가지 참고 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.