MongoDb index Error

빡기·2020년 8월 5일
0
post-custom-banner

오늘은 MongoDB 관련 index Error를 공부하고자 한다!!!

Mongo DB(Doument type NoSQL)

  • JSON 형식의 데이터구조
  • CRUD위주의 다중 트랜잭션 처리 가능
  • Sharding(분산) / Replica(복제) 기능 제공
  • Memory Mapping기술을 기반으로 빅데이터 처리에 성능이 탁월

NOSQL(Non Relational Operation Database SQL)

일반적인 관계형 데이터베이스에서는 데이터의 중복을 제거하고 무결성을 보장하기 위해서 정규화를 하게 되는데 이러한 정규화가 과도한 JOIN으로 인해 성능 저하가 있을 수 있습니다.
NoSQL은 아래의 그림 처럼 중첩데이터 형태를 띔으로써 불필요한 JOIN 을 최소화

NoSQL 장점

  • 불필요한 Join의 최소화
  • 유연성있는 서버 구조 제공
  • 비정형 데이터 구조로 설계비용 감소
  • Read/Write가 빠르며 빅데이터 처리가 가능 (RDBS가 빠른 경우 존재)
  • 저렴한 비용으로 분산처리 및 병렬처리 가능

NoSQL 단점

  • 비정형 데이터로 인해 관계형 데이터베이스보다 1.5배 정도 많은 용량을 요구

대표적인 NoSQL 종류 및 모델

  1. KEY-VALUE - Redis , Memcached
  2. COLUMN - Hbase, Casandra
  3. DOCUMENT - MongoDB
  4. GRAPH - GraphDB

RDBS VS MongoDB

RDBS(관계형 데이터베이스) VS NOSQL(비관계형 데이터베이스)

자 개념은 위의 내용 정도로만 하고 오늘 개발하다가 직면한 Mongo Error에 대해 살펴보자!

어떤 Field에 대해서 작업을 진행하고 완료버튼을 눌러 데이터를 보내려고 하면 위의 사진과 같은 에러가 발생했다
말 그대로 index의 크기가 너무 크다는 의미인데 생각보다 간단한 문제였다....

보통 DB에서 key와 value를 구성할 때 key가 되는 값을 보통 대표적인 값으로 설정하는데 대표적인 값들이 아닌 것들도 모두 index 설정을 해놔서 위와 같은 에러가 발생했던 것이다
stackoverflow에 검색한 결과로는 메모리 크기 설정 or index 중복 등 여러가지 답변이 나왔지만 내가 헛다리를 짚었을 뿐이다 ㅠㅠ

개발팀장님의 도움을 받아 필수적인 값들만 index로 지정하여 위의 에러를 해결 했지만 앞으로도 백엔드 공부를 열심히 해야할 필요가 있겠다..


참고블로그

profile
Front End. Dev
post-custom-banner

0개의 댓글