[mysql] SQL (MySQL) 및 NoSQL (CouchDB) [닫기]
많은 데이터를 저장해야하는 확장 성이 뛰어난 응용 프로그램을 설계하는 중입니다. 예를 들어 사용자에 대해 많은 정보를 저장하고 많은 메시지, 주석 등을 저장합니다. 나는 항상 전에 MySQL을 사용했지만 이제는 SQL이 아닌 couchdb 또는 이와 유사한 것을 시도해 볼 수 있습니다.
누구든지 이것에 대해 생각이나 지침이 있습니까?
답변
다음 은 Dare Obasanjo 의 최근 블로그 게시물에서 인용 한 것 입니다.
SQL 데이터베이스는 자동 전송과 같고 NoSQL 데이터베이스는 수동 전송과 같습니다. NoSQL로 전환하면 관계형 데이터베이스 시스템에서 시스템이 자동으로 처리하는 많은 작업을 담당하게됩니다. 수동 자동 변속기를 선택할 때 발생하는 것과 유사합니다. 둘째, NoSQL을 사용하면 데이터베이스 계층에서 관계형 데이터베이스로 수행되는 많은 무결성 검사를 제거하여 시스템에서 더 많은 성능을 얻을 수 있습니다. 다시 말하지만, 이는 자동 변속기 차량에 비해 수동 변속기를 운전하여 차량 성능을 향상시키는 방법과 유사합니다.
그러나 가장 주목할만한 유사점은 대부분의 사람들이 수동 변속기 차량의 이점을 실제로 이용할 수없는 것처럼 대부분의 운전은 출퇴근 중에 교통에 앉아 있기 때문에 비슷한 가혹한 현실이 있다는 것입니다 대부분의 사이트는 Google 또는 Facebook 규모가 아니므로 Bigtable 또는 Cassandra가 필요하지 않습니다.
경험이없는 MySQL에서 경험이없는 CouchDB 로의 전환 만 추가하면 완전히 새로운 문제를 처리하고 다른 개념과 모범 사례를 배워야한다는 것을 의미합니다. 그 자체로는 훌륭하지만 (MongoDB와 함께 집에서 놀고 있고 많이 좋아합니다), 그 프로젝트의 작업을 추정 할 때 계산 해야하는 비용이 들며, 알려지지 않은 위험을 가져 오면서 알 수없는 이점을 약속합니다. 잘 모르는 기술에 기반을 둔 프로젝트를 제 시간에 수행하고 원하는 품질로 성공할 수 있는지 판단하기가 매우 어려울 것입니다.
이제 팀에 NoSQL 분야의 전문가가 있다면 반드시 잘 살펴보십시오. 그러나 팀에 대한 전문 지식이 없으면 새로운 상용 프로젝트를 위해 NoSQL을 사용하지 마십시오.
업데이트 : 시작한 불에 휘발유를 뿌리기 위해 SQL 캠프에있는 사람들의 흥미로운 두 기사가 있습니다. 🙂
NoSQL이 죽을 때까지 기다릴 수 없습니다 (원본은 사라졌습니다. 여기에 사본이 있습니다 )
NoSQL 마인드와 싸우는 것은 아니지만 NoSQL 조각
업데이트 는 아니지만 : 여기 NoNo 가 NoSQL을 감지 하는 것에 대한 흥미로운 기사가 있습니다.
답변
오늘날 실제 솔루션 만이 스케일 아웃 또는 샤딩과 관련이있는 것 같습니다. 모든 최신 데이터베이스 (NoSQL 및 NewSQL)는 응용 프로그램에 샤딩 코드 등이 없어도 데이터베이스 계층에서 즉시 수평 확장을 지원합니다.
불행히도, 신뢰할 수있는 오래된 MySQL의 경우 샤딩이 “즉시”제공되지 않습니다. ScaleBase (면책 조항 : 저는 거기서 일하고 있습니다)는 원할 경우 “자동 샤딩 머신”으로 완전한 스케일 아웃 솔루션을 제작하는 회사입니다. ScaleBae는 데이터와 SQL 스트림을 분석하고, 데이터를 DB 노드로 분할하고, 런타임에 집계하므로 사용자는 필요하지 않습니다! 그리고 무료로 다운로드 할 수 있습니다.
나를 잘못 생각하지 마라, NoSQL은 훌륭하다. 새로운 것, 새로운 것이 더 선택이며 선택은 항상 좋다! 그러나 NoSQL을 선택하면 가격이 함께 제공되므로 지불 할 수 있는지 확인하십시오.
MySQL, NoSQL에 대한 더 많은 데이터를 여기에서 볼 수 있습니다 : http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding
도움이 되었기를 바랍니다.
답변
가장 좋은 옵션 중 하나는 확장 성을 지원하는 MongoDB (NOSql dB)를 사용하는 것입니다 .SQL의 행 및 테이블과 달리 문서 형식으로 큰 데이터를 제외하고 대량의 데이터 만 저장합니다. 기본 db 서버를 기본으로하는 여러 서버를 유지하는 데이터 보증을 보장합니다. 언어 독립적. 유연한 사용