2012-02-09 3 views
0

많은 레코드를 다룬 경험이 없습니다. 이전에는 기사, 주석 및 기타 간단한 데이터를 저장하기 위해 MySql을 사용했습니다. 이제 루비 온 레일즈 (Ruby On Rails)에 애플리케이션을 작성해야 매분마다 데이터베이스에 수십 개의 레코드가 저장됩니다.DB에 많은 데이터를 효과적으로 저장하는 방법은 무엇입니까?

이 응용 프로그램은 일부 웹 사이트를보고 해당 매개 변수 중 몇 가지를 측정합니다. 웹 사이트는 연중 무휴로 시청됩니다. 100 개의 웹 사이트를 관측하고 싶다면 데이터베이스 테이블에 ~ 144000 (100 * 60 * 24) 개의 새롭게 추가 된 레코드가있을 것입니다. 나는 데이터베이스에 저장뿐만 아니라 결과, 차트 등을 결합, 그들과 함께 일을 바로하지 않으

내가 블로그에 주석처럼 레코드를 저장하는 것은 매우 현명한 아니라고 생각 체계. "멋진"솔루션없이 데이터를 저장해야합니까?

답변

2

MongoDB를 사용 하시길 권하고 싶습니다. 현재 수백만 개의 문서를 저장하고있는 인스턴스가 있습니다. 통상적 인 관계형 스키마와는 달리, MongoDB의 하위 문서 지원을 사용할 수 있습니다.

MongoDB는 NoSQL 데이터베이스이지만, 데이터베이스와 일상 업무에 익숙한 사용자라면 쉽게 사용하고 시작할 수 있습니다.

gem install mongo 

을 그리고 데비안을 실행하는 경우 :

MongoDB를 그래서 당신은 보석을 사용하여 다음 명령을 실행하여 (즉, 사용하고자하는 무엇을 가정) 루비의 드라이버를 설치할 수 있습니다 루비를 포함하여 가장 인기있는 언어에 대한 드라이버가/우분투는 단순히 다음과 같은 mongodb를 isntall :

apt-get install mongodb 

당신이 시작해야합니다.

각 레코드의 크기에 따라 다양한 디자인을 채택 할 수 있습니다. MongoDB는 현재 문서 당 16MB로 제한되어 있으므로주의해야합니다.

나는 것 모니터링하고있는 사이트에 대한 기본 정보를 저장하기위한 수집라는 이름의 웹 사이트, (이름, URL, 클라이언트에 대한 참조를, ...)

그런 다음 저장하기 위해 사용되는 또 다른 컬렉션이 있습니다 귀하의 통계, 즉 "통계"라고 부를 수 있습니다. 하루 동안 데이터를 보유 할 다른 문서 안에 각 하위 문서 (매분 통계)를 저장합니다. 당신은 당신이 그것을 시도를 제공하고자하는 경우 MongoDB를 완벽하게 귀하의 요구 사항에 맞는 생각을 시작 얻는다

{ 
    _id : X, 
    website_id : STORE_THE_ID_HERE, 
    timestamp_start : PUT_THE_TIMESTAMP_WHEN_YOU_START_MONITORING_HERE, 
    timestamp_end : SAME_AS_ABOVE_REALLY, 
    stats_count : A_DENORMALIZED_COUNT_OF_STATS 
    stats : [ { views : X, clicks : X2, ... }, 
     ... 
    ] 
} 

희망 :

그래서 통계의 각 문서는 식으로 뭔가를 할 것이다.

+0

그 대답은 나에게 좋을 것 같습니다. 나는 그것을 시도 할 것이다! – Arti

관련 문제