NoSQL은 'Not Only SQL'의 약어로, RDB로 처리하기에 효과적이지 않은 부분을 대신해 처리하기 위해 탄생했다.

대용량의 로그 처리와 같이 write가 많이 일어나는 작업에 적합하다.

 

NoSQL은 크게 3가지로 분류할 수 있다.

  • Key-Value Store
        Key값으로 Value를 즉시 찾을 수 있도록 Hash 데이터 구조를 사용한다. ( Java의 HashMap같은 구조 ? )
        Memcached, Redis와 같은 Cache 솔루션이 여기에 속한다.

  • Column Oriented Store
        MySQL과 같은 RDB는 행 단위로 저장하는 Row Oriented Store다.
        그에 반면, 열(column) 단위로 정보를 저장해놓는 구조를 말한다.
        HBase, Cassandra와 같은 제품이 여기에 속한다.

  • Document Oriented Store
        데이터를 JSON 형태로 저장하는 구조. 그래서 스키마를 바꾸기 쉽다.
        MongoDB, Elasticsearch와 같은 제품이 여기에 속한다.

 

참고로 위의 분류에서 예를 든 제품말고도, 해당하는 구현체들은 실제로 훨씬 더 많다.