2012-07-09 5 views
1

소셜 네트워크 (연결 및 연결, 메시지 및 위치)를 구축 중이며 관계형 데이터베이스 (MySQL) 또는 no-SQL 시스템 중 어떤 것을 사용할지 결정하는 데 조금 혼란 스럽습니다. (MongoDB)를 개발했다. 누구에게 사용할 때 어떤 견해를 가지고 있습니까?MySql 또는 mongodb와 함께 사용해야합니까?

추 신 : oAuth를 사용하여 개발자가 개발자 시스템에 액세스 할 수 있도록 개발자 API를 작성 중입니다. 따라서 확장 성과 성능 또한 핵심 요소입니다. Rails 3 + Devise (거의 확실하게).

답변

3

이 크게 당신이 편안하는 기술에 따라 달라집니다 ... 각 사용자 요법 연결된 사용자와 자신의 개인 부가 요소의 목록이 더 의미가 무엇 정확히이 등으로부터 벗어나고 싶습니까?

모든 데이터가 관련성이있는 것은 아닙니다. 따라서 이러한 상황에서는 NoSQL이 도움이 될 수 있습니다. NoSQL은 "Not SQL"의 약자입니다. MySQL을 노크하거나 대체하기위한 것이 아닙니다.

SQL 또는 MySQL이 몇 가지 매우 큰 장점이 있습니다

  1. MySQL은 강한 수학적 기초가된다.
  2. 선언 구문.
  3. 구조적 쿼리 언어 (SQL)의 잘 알려진 언어입니다.
  4. 입증 된 매우 신뢰할 수있는 기술입니다. MySQL은 가장 오래된 noSQL보다 훨씬 더 많이 사용되었습니다. 성숙한 기술입니다. Google 애드 센스는 MySQL에서 실행되며 Facebook 영구 저장소는 MySQL에서 실행됩니다. 예제는 신뢰성을 제시합니다.
  5. 성숙한 기술의 결과로 사람들은 그 기술을 최적화했습니다. 내가 한 조각을 선택할 때
  6. 거대한 온라인 및 오픈 소스 커뮤니티를 모두 지원하고되는 NoSQL (카산드라에게 무슨 일이 일어 났는지 볼) 기술 제 생각에는

반대로 기능을 제공하고, 위의 모든 질문은 나에게 중요 과학 기술. 이봐 요, 만약 일요일 저녁 프로젝트라면 현실 세계에서 별다른 결과를 얻고 싶지는 않습니다.하지만 조금 더 심각하다면 다음 질문을 고려해보십시오.

SQL이 사라지지 않았습니다 (noSQL에서도). 이것을 하나 또는 그 이상의 인수로 생각하는 것은 실수입니다. NoSQL은 사람들이 적합 할 때 고려해야 할 대안입니다. 그게 전부입니다.

문서는 CouchDB 또는 MySQL과 같은 비 관계형 데이터베이스에 저장할 수 있습니다 (악용 사례이지만 여전히 경계에 있습니다). 원칙적으로 관계형 데이터베이스는 매우 훌륭한 NOSQL 솔루션을 만들 수 있습니다.

체크 아웃이 hilarious video입니다.이것은이 주제에 대한 다른 관점 :

enter image description here

+0

@SergioTulentsev, lol 나는 당신이 무슨 뜻인지 안다. 심지어 가장 최적화 된 기술조차도 "부정확하게"사용된다면 무너질 수 있습니다. 그래서 도전은 "정확하게"무엇인지 파악하는 것입니다. 사람들이 키 - 값 저장소에서 mySQL을 매우 복잡한 은행 거래 시스템으로 사용하는 것을 보았습니다. 올바른 믹스를 파악하는 것이 중요합니다. –

0

프로젝트에 특정 객체 간의 실제 관계가 필요한 경우 MySql을 사용할 수 있습니다. 다른 사용자에게 메시지가있는 사용자와 같이 일반적으로 고유 한 데이터가있는 항목을 저장하는 경우 MongoDB와 같은 문서 스타일 데이터베이스가 더 적합합니다.

관계를 mongo에서 할 수는 있지만 관계형 데이터베이스에서는 훨씬 더 의미가 있습니다. 그러나 대부분의 데이터가 사용자의 고유 한 특성이라면 mongo가 더 적합합니다. 귀하의 경우에는

이 계획의 문서 유형이

1

나는 때문에 스키마 및 확장 성/성능의 유연성을 내 "사회"응용 프로그램에 대한 MongoDB를 선택했다을 제공합니다. MongoDB를 사용하면 코드를 크게 변경하지 않고도 스키마를 조정할 수 있으며 읽기/찾기가 매우 쉽습니다.

또한 학습 경험으로 MongoDB를 선택했습니다. 나는이 "noSQL"데이터베이스로 모든 소란이 무엇인지 알고 싶었습니다 ... 그리고 지금 나는 이유를 알고 있습니다. 내 의견으로는 MongoDB가 훌륭하고 확장 성 및 성능이 요구되는 소셜 네트워크를 고려해야 할 가치가 있습니다. Node.js는 API를위한 탁월한 선택입니다.)

1

도 마찬가지입니다.

네트워크/그래프 데이터베이스로 이동해도 후회하지 않을 것입니다. 현재 가장 좋아하는 영화는 Neo4j입니다.

http://neo4j.org/

참고 : Neo4J

관련되지는 당신이 SQL 호환성을 필요 단지의 경우, Neo4J의 최신 버전은 SQL 인터페이스를 가지고 생각합니다. 그렇지 않으면 네이티브 라이브러리를 사용하여 무결하게 처리하십시오. 그것은 매우 빠릅니다.

그래프 데이터를 시각화해야합니다. 상사에게 보여줄 수있는 인상적인 데이터가 필요하면 yEd 패키지를 사용하십시오. graphml 형식으로 neo4J을 내보내려면이를 사용 : 당신은 앞 관계형 DB 또는 MongoDB를 사용하여 Neo4J의 관계와 백엔드를 끝낼 수 있었다

Convert Neo4j DB to XML?

. 나는 하이브리드 아키텍처를 보아왔다.

관련 문제