2013-06-04 2 views
0

소셜 네트워킹에 중점을 둔 음악 앱 만들기 - ~ 10-15 개의 노드 (사용자, 아티스트, 노래 등)가 있다고 가정합니다. PHP로 작성되었으며 Neo4J의 REST API를 사용합니다. 1K 또는 10K 나 100K 또는 1M 사용자의 (Neo4J 또는 mysql) 및 redis - 소셜 네트워킹

...

는 neo4j MySQL을 대체하고 (레디 스에 의해들 었) 정적 데이터를 제공하는 측면에서 동일하게 미리 형성 할 수 있습니까? 글쓰기 (예 : 사용자가 프로필을 수정)는 어떻습니까?

처음에 Neo4j에서 MySQL을 사용하려고 생각했습니다. 일부 Google 검색은 융통성이 적고 유지 관리가 필요하다고 지적했습니다. 다른 이들은 "매력처럼 작동한다"고 말했다. 생각?

감사합니다.

답변

15

은 (레디 스에 의해들 었) neo4j MySQL을 대체하고 정적 데이터를 제공하는 측면에서 동일하게 미리 형성 할 수있는 당신이 여기에 요청하고 있지만 내가 따로 선택하려고합니다 무엇인지

하지 않음 .

MySQL을 neo4j와 비교하려면 다른 제품이기 때문에 진정한 비교가되지 않습니다. 하나 이상을 사용하는 것은 요구 사항, 제약 조건 및 SLA를 기반으로합니다. 다른 하나보다 낫기 때문에가 아닙니다. 뛰어난 데이터베이스 관리 도구와 함께 지속성, 내구성 및 트랜잭션 무결성이 필요한 경우 MySQL을 사용하십시오. 빠른 검색을 위해 메모리 내 그래프를 사용하여 상호 연결된 사회적 관심사를 저장하려는 경우 성능에 대한 신뢰성을 희생하려는 경우 neo4j를 사용하십시오.

... 그리고 제공하는 정적 데이터의 관점에서 동일하게 수행 ... 모든

먼저, 정적 데이터를 제공하는 데이터베이스를 사용하지 않는; 반 복합체 (키/값, 집합, 해시)의 경우 redis를 사용합니다. images/css/js와 같은 정적 컨텐츠의 경우 nginx와 같은 역방향 프록시를 사용하십시오.

처음에 Neo4j와 함께 MySQL을 사용하려고 생각했습니다. 일부 Google 검색은 융통성이 적고 유지 관리가 필요하다고 지적했습니다.

의견을 잊어 버리십시오. 모두가 하나있어. 그 기사는 달성하려고 시도했지만 실패한 요구 사항, 제약 조건 및 서비스 품질에 대해 토론 했습니까? 그 이유는 무엇입니까? 나는 그들의 제약이 당신과 매우 다를 가능성이 높습니다. 나쁜 해결책은 없습니다. 오직 나쁜 선택. 그래서 우리 중 대부분이 다른 사람의 바보 같은 결정을 고수하고 있기 때문에 IT 분야의 일자리가 충분합니다. 당신이 필요로하는 것을 정확히 집중하고, 미리 계획을 세우고, 그 기간을 기반으로 선택을하십시오.

어쨌든 당신이 제공 한 제한된 정보에 기반하여, 나에게있어 MYSql과 neo4j를 사용하고 싶습니다. 왜냐하면 중요한 데이터베이스 작업 (프로필 업데이트, 구매 등), 사회적 연결, 관심 분야 등에 대한 업데이트와 같이 덜 중요한 변경 사항은 여전히 ​​데이터베이스에 유지되지만 그래프에도 비동기 적으로 푸시됩니다. 일부 업데이트가 실패하거나 림보에 끼어 들지 않으면 Suzie는 최신 재생 목록을 얻지 못하거나 친구로부터 좋아하지만 적어도 신용 카드 정보는 안전합니다.

물론 MySql과 neo4j를 모두 사용하면 더 많은 유지 관리가 가능하지만 MySQL과 그래프 간의 결합을 느슨하게하면 최소화 할 수 있습니다.다시 말해, neo4j에서 데이터 모델을 복제하지 마십시오. 데이터베이스를 변경하면 그래프가 변경되므로 유지 관리가 어려워집니다. 네오에서는 마스터 수준의 스크린을 생성 할 수있을만큼만 참조 식별자와 매우 기본적인 정보 (user_id, 성/이름, 앨범 _id, 앨범 _ 이름) 만 저장하십시오. 사용자가 상세 수준 화면 (사용자, 앨범 등을 클릭)으로 드릴 다운하면 데이터베이스로 이동하거나 다시 실행하여 해당 개체의 전체 세부 정보를 가져옵니다. 두 제품을 모두 사용하면 균형이 잘 잡히지 만 조금만 더 작업하면되지만 제대로 완료되면 관리가 가능합니다.

가 도움이되기를 바랍니다 여기에 당신을 위해 몇 가지 추가 정보가의 ...
Is it a good idea to use MySQL and Neo4j together?

관련 문제