7. NoSQLLightweight RDBMS, `98, Carlo StrozziSQL 인터페이스를 가지지 않는 DBMS 설계Eric Evans에 의해 `09년에 다시 소개ACID를 보장하지 않는 비 관계형, 분산 저장소에 대한 논의비싼 분산 RDBMS와 Join 연산에 대한 제약을 극복하기 위한 대안으로 제시
10. CAP 이론(1)Consistency모든 노드가 동일한 데이터를 가진다.Availability노드가 멈춰도 사용할 수 있다.Partition Tolerance물리적 분산 환경에서 동작 가능하다.모든 DBMS는 두 가지특성만을 가진다.Consistency:ACIDTransactionAvailabilityPartition Tolerance:Scale out
19. 환경 구축(1)VMWare를 이용해 DBMS 설치머신Windows XP SP3Intel Core2 Dual 2.5Ghz2GB Ram가상 머신Windows XP SP3512 MB RamSingle Core12 GB HDD
20. 환경 구축(2)가상 머신 별 소프트웨어VM-MySQLMySQL 5.5.12 x 1VM-MongoDB Single NodeMongoDB 1.8.1 x 1VM-MongoDB Multi NodeMongoDB 1.8.1 x 3Config Server x 1Router x 1
49. Insert 결과(Multi Node)1000개 당 로그평균 0.001초 소모(최소 0.0002초 최대 0.099초)Shard Key는 각 레코드마다 고유하게 주어진 필드를 이용했다.Insert에 실패 한 경우가 있었다.소요시간
50. Insert 결론MongoDB에서의 Insert 연산이 MySQL에 비해 빨랐다.Single Node에 비해 Multi Node가 근소하게 빠름(평균 0.001초)MySQL보다 조금 더 빠른 이유는 ACID를 보장하지 않기 때문인 것으로 추정된다.Multi Node로 사용할 때 가장 빠른 속도를 보이거나 가장 느린 속도를 보인다. 이는 데이터가 분산되어 저장되면서 일어난 현상으로 추정된다.
51. Select – 예상 소모 시간Single Node일정한 속도를 가질 것이다.MySQL보다 느릴 것이다.Multi NodeSingle Node에 비해 근소하게 느릴 것이다.
67. 최종 결론(5)대부분의 성능이 MySQL에 비해 MongoDB가 빨랐다.ACID 보장을 위해 MySQL이 많은 시간을 소모하는 것으로 예상된다.Single Node와 Multi Node 간에 성능 차이는 거의 나지 않지만, Delete 연산을 제외하고는 Multi Node가 조금 더 빨랐다.MySQL은 ODBC를, MongoDB는 C# Driver를 사용하였다. 드라이버의 구현상에서 성능 차이가 발생할 수 있다.
68. 최종 결론(6)MongoDB Multi Node의 Insert 연산 중에 연산 실패가 일어나는 경우가 있었으므로 사용상 주의가 필요하다.MongoDB는 저장 프로시저를 사용할 수 없고 트랜잭션 처리에 경험을 필요로 한다.또, ODBC를 사용할 수 없고 전용 드라이버를 사용해야 하므로 기존의 레거시 프로그램들은 MongoDB로 교체하는데 추가 비용이 청구될 것이다.그러나 분산을 목적으로 한 DBMS를 선택한다면, 기존의 RDBMS에 비해 낮은 비용과 빠른 성능을 제공하는 MongoDB를 선택해도 충분할 것이라 생각된다.