✳ NoSQL 이 뭔가요?
Not only SQL, Not SQL
※ 특별한 이슈에 대응하기 좋은 DB
1. Document DB
mongoDB : json document 형태로 데이터 저장
2. Key Value DB
Cassandra DB(매우 빠름 - 많은 양의 데이터를 빠르게 저장, 검색)
Dynamo DB(아마존에서 만듦, 예 : 듀오링고(단어) 많이쓰고 많이 읽을때)
3. Graph DB
column이나 document가 필요없을 때 but 각 노드 사이 관계를 알아야할 때
예 : 소셜 네트워크 Facebook - TAO, neo4j
NoSQL 의 등장배경 '빅데이터'!
빅데이터가 이슈가 되면서 NoSQL의 인기도 상승
왜? 엄청난 양의 트래픽은 기존의 RDBMS가 감당하지 못해서 NoSQL로 이동하게 됨
예) 인스타그램 DB 처음 PostgreSQL 로 시작 => 커지면서 graphDB로 이동.
SQL vs NoSQL
수평적 확장성 vs 수직적 확장성 (Horizontal vs Vertical Scalability)
확장성 Scalability
NoSQL 장점 : 수평적 확장성 ➡ 서버가 증가하면, 저장공간 등 스케일 증가 (응답속도 보장 : 해시 O(1))
수직적 확장성 : RDBMS 머신을 더 좋은 사양으로 바꿈 ➡ 확장 비용과 유지보수 비용이 큼
SQL vs 쿼리 언어 없음 (SQL vs No Query Language)
쿼리 언어 여부
조인을 자주 해야하는 데이터 : SQL을 사용
정형 데이터 : 쇼핑몰 ➡ SQL
비정형 데이터 : 인스타그램, 페이스북 ➡ NoSQL
강한 스키마 vs 자유로운 스키마 (Strict Schema vs Schema-free)
스키마 유연성
SQL은 스키마가 엄격하게 제한되어있음, NoSQL은 비교적 자유로움
RDBMS는 강한 스키마 덕에 인덱스를 생성하는 경우가 많음
RDBMS 정렬된 데이터에서 인덱스가 있는 데이터 검색 속도 : logN (이진탐색) 보장
RDBMS : ACID 트랜잭션 기반
NoSQL : BASE (Insertion에 최적화)
NoSQL 과 SQL 어떤 걸 사용해야 좋을까?
처음에 SQL로 시작하고 필요해지면 NoSQL의 솔루션을 찾아보는 것을 추천
'DataBase' 카테고리의 다른 글
데이터베이스(Database, DB) (0) | 2021.03.02 |
---|