본문 바로가기

Database/MongoDB

MongoDB #4 (인덱싱)

반응형

기본

// 단일 필드 인덱스
db.users.createIndex({ email: 1 })       // 오름차순
db.users.createIndex({ age: -1 })        // 내림차순

// 복합 인덱스
db.users.createIndex({ 
  "address.city": 1, 
  age: -1 
})

// 고유 인덱스
db.users.createIndex(
  { email: 1 }, 
  { unique: true }
)

 

특수 인덱스

// 부분 인덱스
db.users.createIndex(
  { age: 1 },
  { partialFilterExpression: { age: { $gte: 18 } } }
)

// 텍스트 인덱스
db.articles.createIndex({ 
  title: "text", 
  content: "text" 
})

// 지리공간 인덱스
db.places.createIndex({ location: "2dsphere" })

 

인덱스 관리

// 인덱스 조회
db.users.getIndexes()

// 인덱스 삭제
db.users.dropIndex({ email: 1 })
db.users.dropIndex("email_1")

// 모든 인덱스 삭제 (_id 제외)
db.users.dropIndexes()

 

쿼리 성능 분석

// 실행 계획 확인
db.users.find({ age: 30 }).explain("executionStats")

// 인덱스 힌트
db.users.find({ age: 30 }).hint({ age: 1 })

 

 

 

 

반응형

'Database > MongoDB' 카테고리의 다른 글

MongoDB #6 (VSCode로 MongoDB 사용하기)  (1) 2025.07.28
MongoDB #5 (집계)  (0) 2025.07.28
MongoDB #3 (쿼리 및 필터링)  (4) 2025.07.28
MongoDB #2 (기본 명령어, CRUD)  (1) 2025.07.28
MongoDB #1 (소개)  (1) 2025.07.28