2011-09-26 4 views
5

PHP를 사용하여 웹 응용 프로그램을 개발하고 있습니다. 필자는 MySQL을 RDMS로 사용했습니다. 많은 경우 RDMS가 작동하며 정규화를 통해 많은 문제를 해결할 수 있습니다. 그러나 일부 상황에서는 RDMS와 제대로 작동하지 않으므로 NoSQL과 같은 다른 솔루션이 고안되었습니다.MySQL 대신 NoSQL을 사용해야합니까?

NoSQL이 더 적합한 상황은 무엇인지 명확하지 않습니다. 다른 NoSQL 옵션 중 일부는 어떻게 다릅니 까? 어떤 상황이 다른 것보다 좋고 PHP 5.3 이상 (API 현명)과 호환 되는가?

그래서 내가 사용할 수있는 NoSQL 서버 소프트웨어 목록 (예 : MySQL은 RDMS)을 찾고 있는데 왜 다른 하나 이상의 하이브리드를 사용해야합니까? 또한 RDMS 대신 NoSQL을 사용하여 해결할 수있는 문제의 구체적인 예입니다.

마지막으로, 나는 NoSQL의 서버가이 상황에서 더 잘 작동하면 것인지 알고 싶어

각 행이 다른 컬럼/필드가 할 수있는 데이터의 테이블. 한 행에는 5 개의 열이 있고 다른 행에는 5 개의 완전히 다른 열이 있고 다른 열에는 10이있을 수 있습니다. 그러나이 모든 행 중에서 하나의 기본 자동 증가 숫자 ID가 있습니다. 수백만 개의 "행".

(위와 같이 NoSQL은 테이블의 행이 아니라 객체의 집합이므로 완벽하다고 가정합니다. A. 기본 키는 확실하지 않습니다.)

RDMS에서 가장 많이 사용되는 열을 만든 다음 PHP의 serialize/unserialize를 사용하여 다른 열을 저장할 수 있습니다.하지만이 방법은 매우 비효율적이며이 " "birthday_pledge"라는 열의 모든 행에 SUM과 같은 직렬화 된 배열 (각 행이 사용되는 곳)이 있습니다.

제 경우에 "column"은 기본 키가 아닌 사용자 정의 및 사용자 정의입니다. 그러나 이러한 "열"에 대한 보고서 (합계, 필터, 검색)를 실행할 수 있어야합니다. 그래서 NoSQL이 솔루션이 아니라면, 내가 생각할 수있는 유일한 것은 사용자를위한 맞춤 테이블을 만드는 것입니다 (하지만 복잡해질 수 있음).

또한 확장 성 (다중 데이터베이스 서버, 중복성 및 장애 조치)이 매우 중요하다는 점을 지적하고자합니다.

+0

여기를보십시오 : http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis – zerkms

+0

당신이 기술하는 데이터에 대한 관계형 데이터 모델은 ID별로 다른 유형. 매우 일반적인 의미에서 (나는 직접적으로 사용하는 것을 권장하지 않는다), 기본 키에 의해 항목과 연관된'integer_values','text_values' 등의 테이블을 가질 수 있습니다. –

+0

우리는 실제로'id','text'라는 일반화 된 테이블을 사용합니다. 그러나 테이블에는 수백만 개의 행이 있으며보고가 불가능합니다. NoSQL이 우리 상황에서 RDMS에 대한 더 나은 솔루션이 아니라면, 사용자 정의 테이블을 만드는 것이 고려 중입니다. – Luke

답변

1

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

이 문서는 대부분의 대부분의 플레이되는 NoSQL 데이터베이스 시스템 및 theire 프로/사기꾼을 비교합니다.

희망이 있습니다.

추신 : 내 생각에 당신이 찾고있는 것은 couchdb 또는 mongodb이지만 나는 잘못 될 수 있습니다.

+1

목록에 더 많이 포함하면 좋을 것입니다. 나는 또한이 [visual guide] (http://blog.nahurst.com/visual-guide-to-nosql-systems)를 많이 찾았습니다. 또한이 [site] (http : // nosql-database.org /)에는 NoSQL 데이터베이스의 전체 목록이 있습니다. – Luke

관련 문제