http://www.quora.com/Why-does-Quora-use-MySQL-as-the-data-store-rather-than-NoSQLs-such-as-Cassandra-MongoDB-CouchDB-etc
왜, Quora는 몽고디비같은거를 안쓰고 MysQL을 쓰나요? 에 대한 대답.
약간 요약 번역
1. 애플리케이션쪽에서 파티션을 담당한다면, MySQL의 확장성은 문제가 되지 않는다. Facebook에서는 1800대의 MySQL 서버를 DBA두명이 관리했다(2008년에). 파티션으로 나누면 JOIN기능을 사용할 수 없지만 NoSQL들도 마찬가지다
2. 카산드라(Cassandra), 몽고디비(MongoDB), 카우치디비(CouchDB)는 생각만큼 안정적이거나 확장성있는게 아니다.
3. 정보 저장소는 중요한 부분이다. 안정성이 확보되지 않은 신규 기술을 적용하기에 적당한 부분이 아니다.
4. MySQL 서버만가지고도 충분히 확장할 수 있다. CPU를 더 꽂고 RAM을 더 설치하고 replca를 이용하면 된다. 데이터베이스앞에 memcached를 둔다면 데이터베이스는 write만 담당하면 된다.
5. MySQL을 애플리케이션 측에서 파티셔닝할때는 여러가지 문제가 생긴다. 이문제들은 애플리케이션과 MySQL 사이에 분산자동화를 위한 레이어를 하나두면 된다. FriendFeed에서 좋은 예제를 만들어뒀다. ( http://bret.appspot.com/entry/how-friendfeed-uses-mysql )
6. 개인적으로 스키마가 있는 데이터베이스가 '올바른' 데이터베이스 모델이라고 생각한다. 지금의 NoSQL 붐은 누군가 약간 느슨한 문법을 지원하는 분산형 SQL서버를 구현하면 사그러들꺼라고 생각한다.
나도 운영중인 서버에는 NoSQL적용 못하고 있지만, 신규서비스를 만들때는 이렇게까지 보수적으로 가지는 않을 것 같다. 재미가없잖아!
어쨌든 저 프렌드피드 링크(http://bret.appspot.com/entry/how-friendfeed-uses-mysql)는 오래된 거지만 아직도 읽어볼만한 것 같다.
왜, Quora는 몽고디비같은거를 안쓰고 MysQL을 쓰나요? 에 대한 대답.
약간 요약 번역
1. 애플리케이션쪽에서 파티션을 담당한다면, MySQL의 확장성은 문제가 되지 않는다. Facebook에서는 1800대의 MySQL 서버를 DBA두명이 관리했다(2008년에). 파티션으로 나누면 JOIN기능을 사용할 수 없지만 NoSQL들도 마찬가지다
2. 카산드라(Cassandra), 몽고디비(MongoDB), 카우치디비(CouchDB)는 생각만큼 안정적이거나 확장성있는게 아니다.
3. 정보 저장소는 중요한 부분이다. 안정성이 확보되지 않은 신규 기술을 적용하기에 적당한 부분이 아니다.
4. MySQL 서버만가지고도 충분히 확장할 수 있다. CPU를 더 꽂고 RAM을 더 설치하고 replca를 이용하면 된다. 데이터베이스앞에 memcached를 둔다면 데이터베이스는 write만 담당하면 된다.
5. MySQL을 애플리케이션 측에서 파티셔닝할때는 여러가지 문제가 생긴다. 이문제들은 애플리케이션과 MySQL 사이에 분산자동화를 위한 레이어를 하나두면 된다. FriendFeed에서 좋은 예제를 만들어뒀다. ( http://bret.appspot.com/entry/how-friendfeed-uses-mysql )
6. 개인적으로 스키마가 있는 데이터베이스가 '올바른' 데이터베이스 모델이라고 생각한다. 지금의 NoSQL 붐은 누군가 약간 느슨한 문법을 지원하는 분산형 SQL서버를 구현하면 사그러들꺼라고 생각한다.
나도 운영중인 서버에는 NoSQL적용 못하고 있지만, 신규서비스를 만들때는 이렇게까지 보수적으로 가지는 않을 것 같다. 재미가없잖아!
어쨌든 저 프렌드피드 링크(http://bret.appspot.com/entry/how-friendfeed-uses-mysql)는 오래된 거지만 아직도 읽어볼만한 것 같다.