node.js 데이터베이스 [닫힘]
node.js 앱과 페어링 할 데이터베이스를 찾고 있습니다. json / nosql db가 관계형 DB보다 선호된다고 가정합니다 [json / sql 임피던스 불일치없이 수행 할 수 있음]. 나는 고려하고있다 :
- couchdb
- 몽고 드
- 레디 스
누구든지 node.js와 위의 호환성 / 배포 가능성에 대한 견해 / 전쟁 이야기가 있습니까? 분명한 즐겨 찾기가 있습니까?
node.js의 mongodb 드라이버 개발자입니다. 내 프로젝트에 mongodb를 사용하고 있으며 mongodb의 성능에 매우 만족했습니다.
(Shameless plug) 드라이버에 대한 질문은 언제든지
또는 여기에
node.js로 재미있게 보내십시오. 나는 절대적으로 플랫폼을 좋아합니다 : D
귀하가 선택하는 기능에 따라 크게 달라 지지만 CouchDB는 기본 JavaScript 환경에 매우 감사합니다. 데이터와 뷰는 모두 JavaScript로 작성되므로 node.js에 매우 적합합니다.
다른도있다 클라이언트 라이브러리를 사용할 수는, 일부는 다소 낮은 수준이며, 다른 하나는 정말 추상화.
그러나 내가 말했듯이 데이터베이스에 필요한 기능에 대해서도 생각해야합니다.
Redis는 인기있는 선택입니다. 당신이 쫓는 것은 차단되지 않는 데이터베이스 드라이버입니다.
나열된 데이터베이스는 모두 매우 다릅니다. Redis는 키-값 스토리지에 대한 아이디어를 취하고이를 활용하여 다양한 데이터 유형과 데이터 쿼리 방법을 추가합니다. 사람들은 종종 redis가 매우 잘 축소된다는 것을 알고 있습니다. 수행 능력에도 불구하고 오버 헤드가 매우 낮다는 것을 의미합니다.
사용 가능한 데이터베이스 모듈 목록은 다음과 같습니다. http://wiki.github.com/ry/node/modules#database
저는 CouchDB를 정말 좋아합니다. 약간의 학습 곡선이지만 사용 방법을 이해하면 뷰가 실제로 강력합니다. github 및 npm 에는 cradle 이라는 모듈 이있어 실제로 작업하기 쉽습니다. 나는 그것이 얼마나 빠른지 테스트 할 수 없었지만 실제로 유연합니다 (원하는 경우 브라우저에서도 데이터에 액세스 할 수 있음).
여기서 가장 큰 문제는 응용 프로그램에 적합한 데이터베이스 디자인입니다. 본질적으로 키-값이 큰 데이터가 있습니까? 그렇다면 Redis를 사용하십시오. 모든 문서가 반드시 동일한 필드를 가질 필요는없는 데이터가 있습니까? 그렇다면 CouchDB와 같은 NoSQL 데이터베이스를 사용하십시오.
블로킹 데이터베이스를 사용할 때의 다음 나쁜 점은 데이터에 잘못된 데이터베이스를 사용하는 것입니다. CouchDB는 Apache에 의해 관리되므로 좋은 품질이라는 것을 알고 있지만 SQL 테이블이나 간단한 키-값 저장소에서 데이터가 더 의미가있는 경우에는 사용하는 것이 합리적이지 않습니다.
유스 케이스를 생각해보십시오. 전체 텍스트 검색을 원하거나 키를 기준으로 데이터를 가져 오거나 비슷한 속성을 가진 문서 범위를 원하십니까?
node.js에 대한 Persistence , 고수준 지속성 / 데이터베이스 시스템 을 확인하고 싶을 수도 있습니다.
에서 thechangelog.com :
지속성은 프로세스 실행간에 데이터를 유지하기 위해 높은 수준의 API를 허용하는 프로젝트입니다. 목표는 사용하기 쉽고 강력하고 유연하며 가능한 경우 위의 모든 백엔드를 지원하는 것입니다.
지원되는 데이터베이스는 다음과 같습니다.
- PostgreSQL-엔터프라이즈 레벨 관계형 데이터베이스. 드라이버는 순수 JavaScript로 구현되며 PostgreSQL 유선 프로토콜을 사용하여 TCP를 통해 통신합니다.
- Sqlite3-간단하고 빠른 서버리스 관계형 데이터베이스. 이 드라이버는 명령 줄 sqlite3 프로그램의 래퍼입니다. sqlite3가 경로에 있어야합니다. 의사 소통은 매우 빠르지 만 유형은 정확하지 않습니다. 문자열과 null 만 반환됩니다.
- MongoDB-확장 가능한 고성능의 오픈 소스, 스키마가없는 문서 지향 데이터베이스. 이 드라이버는 JavaScript로 유선 프로토콜을 구현하고 TCP를 통해 서버와 통신합니다.
- JSON-DB-JSON 객체가 포함 된 단순 플랫 파일을 사용하는 자체 시스템 스키마가없고 문서 지향 데이터베이스입니다. 이것은 노드와 파일 시스템을 제외하고는 전혀 요구되지 않습니다. 성능이 완전히 구현되면 결정됩니다.
면책 조항 : 나는 저자입니다.
아마도 여기에 발표 된 BarricaneDB를 살펴 보자 .
올바른 솔루션이 데이터베이스를 웹 스택에 매핑하는 것에 만 초점을 맞추는 것이 아니라 응용 프로그램 별 요구 사항을 고려하는 것입니다.
패턴에 대한 트위터 피드 또는 기타 대용량 데이터를 분석하고 있지만 트랜잭션 지원이 필요하지 않습니까? 그런 다음 정말 빠른 것을 선택하십시오.
몇 가지 테이블에 실제로 기본적인 정보를 저장하고 싶지만 현재 "엔터프라이즈 중심"앱이 아닌가? 그런 다음 배울 멋진 것을 고르십시오.
어쩌면 클라이언트에게 강력하고 강력하고 트랜잭션이 필요하며 원격 호스팅 시설 등에 실시간으로 복제해야하는 데이터를 저장할 수 있습니다. 그런 다음 postgresql과 같은 것을 살펴보십시오. 그것은 미러되지는 않지만 node.js 드라이버는 꽤 잘 작동하며 sql을 치명적으로 두려워하지 않으면 원하는 것을 쉽게 가져오고 나갈 수 있습니다.
내 의견으로는 node.js (php / java의 전통적인 프레임 워크)와 같은 새로운 스택을 사용하면 한 번에 추가 레이어를 추가하지 않아야하는 충분한 "새로운"복잡성을 추가한다고 생각합니다. 이것은 다음을 논의하는 좋은 기사입니다.
http://nodeguide.com/convincing_the_boss.html
CouchDB에는 명확한 학습 곡선이 있지만 MongoDB는 배우고 설정하기가 매우 쉽다는 것을 알았습니다. 나는 redis를 사용한 적이 없다. 나는 MongoDB를 제안한다-그러나 그것은 뻔뻔한 fanboyism-나는 숫자가 없다.
dirty는 또 다른 플랫 파일 키-값 저장소입니다. 이름에서 알 수 있듯이 간단한 경우에는 빠르고 더럽지 만 성능이 뛰어난 솔루션입니다. 나는 저자가 아니다 :)
더 고려해야 할 사항 :
글로벌 : http://globalsdb.org
GT.M (see https://github.com/robtweed/node-mwire for a starting point)
M/DB (an open source clone of SimpleDB): https://github.com/robtweed/node-mdb and you can use the Node.js SimpleDB client to access it: https://github.com/rjrodger/simpledb
I found CouchDB very easy to master. There are a lot ebooks available on the internet which will teach you how to use CouchDB with Node.js.
I found this book very useful for learning CouchDB.
For using CouchDB with Node.js, I use NANO module.
CouchDB can be hosted on either Iriscouch or Cloudant.
참고URL : https://stackoverflow.com/questions/2750673/node-js-database
'IT story' 카테고리의 다른 글
jQuery UI“$ (”# datepicker“). datepicker는 함수가 아닙니다” (0) | 2020.07.23 |
---|---|
/ MD 또는 / MT로 컴파일해야합니까? (0) | 2020.07.22 |
ostringstream을 재사용하는 방법? (0) | 2020.07.22 |
Google App Engine 용 플라스크 및 webapp2 (0) | 2020.07.22 |
ActiveRecord, has_many : through 및 다형성 연관 (0) | 2020.07.22 |