인덱싱인덱스를 사용하면 효율적으로 쿼리할 수 있다. 인덱스를 사용하지 않는 쿼리를 컬렉션 스캔(collection scan)이라 하며, 서버가 쿼리 결과를 찾으려면 '전체 내용을 살펴봐야 함'을 의미한다. > db.col3.find({ a: 3 }).explain("executionStats"){ explainVersion: '1', queryPlanner: { namespace: 'test.col3', parsedQuery: { a: { '$eq': 3 } }, // ... executionStats: { executionSuccess: true, nReturned: 59, // 반환받은 결과의 개수 executionTi..
MongoDB프로젝트 초기 설계 당시에는 어떤 DB를 사용하는지 결정하게 된다. 이때 시스템의 특성과 요구사항에 따라 관계형 데이터베이스 대신 NoSQL 데이터베이스를 채택하는 주된 이유는 다음과 같다.대규모 데이터셋이나 매우 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 할 수 있는 뛰어난 확장성의 필요관계형 모델에서 지원하지 않는 특수 질의 동작관계형 스키마의 제한에 대한 불만과 더욱 동적이고 표현력이 풍부한 데이터 모델에 대한 바람NoSQL 데이터베이스는 이러한 요구사항에 따라 아래와 같이 크게 4가지 유형으로 구분된다. 이 중에서 MongoDB는 문서 지향(Document-oriented) 데이터베이스의 대표적인 예로 다양한 형태의 데이터를 유연하게 저장하고 확장할 수 있는 기능을 제공한..
트랜잭션트랜잭션은 읽기나 쓰기 작업이 가능한 데이터베이스 작업을 하나 이상 포함하는 데이터베이스의 논리적 작업 단위를 의미한다. 데이터베이스 운영 시 여러 도큐먼트에 관한 읽기과 쓰기 작업이 필요한 경우가 많고, 이러한 도큐먼트들은 하나의 컬렉션에 있을 수도 있고, 여러 컬렉션에 분산되어 있을 수 있다.몽고DB는 비관계형 데이터베이스이므로 전통적인 관계형 데이터베이스의 트랜잭션 방식을 그대로 적용할 수 없다. 몽고DB CRUD 블로그에서 설명했듯이 updateOne, findOneAndDelete, findOneAndReplace, findOneAndUpdate 등 Single Document에 대해서는 원자성을 보장한다. 몽고DB의 경우 insertMany처럼 전체 쿼리에 대해 일부 실패하면 그 시점까..
- Total
- Today
- Yesterday
- spring session
- sql
- EKS
- mysql
- Kafka
- annotation
- 낙관적 락
- 넥스트스탭
- Java
- 분산 락
- spring webflux
- TDD
- nginx
- 구름톤챌린지
- 구름톤 챌린지
- 비관적 락
- NeXTSTEP
- Redisson
- redis session
- 트랜잭션
- transaction
- nginx configuration
- socket
- Synchronized
- postgresql
- jvm 메모리 구조
- 람다
- pessimistic lock
- 카프카
- mdcfilter
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
