문제

지난 몇 년 동안 여러 앱을 설계 한 다음 성능과 확장 성 측면을 지속적으로 정제 한 MySQL 공간에서 편안합니다. 또한 자주 쿼리 된 결과 세트에 응용 프로그램 측면 속도를 제공하기 위해 Memcached와 함께 작업 한 경험이 있습니다. 그리고 최근에 나는 전자 상거래 실험을위한 주요 "데이터베이스"로 Amazon SDB를 구현했습니다.

지나치게 단순화하기 위해 SDB 서비스를 사용하는 데있어 빠른 정당화는 스키마가없는 데이터베이스 구조를 사용하면 프로젝트의 논리적 문제에 집중하고 데이터 스토어에 컨텐츠를 빠르게 축적 할 수 있다는 것입니다. 즉, 사전에 제품 속성의 가능한 모든 순열을 설정하고 정상화하는 것에 대해 걱정하지 마십시오. 제품에로드를 시작하면 SDB는 단순히 사용 가능한 모든 것을 기억합니다.

이제 프로젝트의 처음 몇 번의 반복을 통과 할 수 있었으며 데이터에 간단한 인터페이스를 설정해야합니다. MySQL과 함께 일하는 데 당연한 문제로 실행 중입니다. 예 : SELECT 문으로 그룹화하고 구문을 "항목 50 ~ 100"로 쿼리로 제한합니다. SDB의 Schema Free Architecture를 사용하여 얻은 편의 이점은 1800 개가 넘는 항목으로 결과 집합을 쿼리/루핑하는 성능을 잃었습니다.

이제 저는 메모리 내 키 가치 저장소의 개념을 확장하여 우스꽝스럽게 빠른 속도 (어딘가에서 읽은 14x)에서 의사 관계 기능을 제공하는 도쿄 캐비닛과 같은 프로젝트에 대해 읽고 있습니다.

내 질문 : 응용 프로그램 디자이너/개발자로서 제가 프로젝트의 각 단계에서 가장 적합한 DB 기술을 평가할 수있는 기초 가이드 라인 또는 휴리스틱이 있습니까?

예 : 응용 프로그램의 논리적/기술 미지수가 데이터 구조를 유동화하는 프로토 타이핑 단계에서 SDB를 사용하십시오. 사용자 결과물이 우선 순위 인보다 성숙한 단계에서 정렬, 그룹화 또는 페이지 매김 로직을 작성하는 데 시간을 할애 할 필요가없는 기존 도구를 사용하십시오.

이러한 도구에 대한 실제 경험은 대단히 감사 할 것입니다.

감사합니다!

Shaheeb R.

도움이 되었습니까?

해결책

새로운 솔루션은은 총알이 아닙니다.

기존 RDBM과 비교하여 이러한 시스템은 일부 측면 (확장 성, 가용성 또는 단순성)을 개선합니다. 거래 다른 측면 (쿼리 기능 감소, 최종 일관성, 특정 작업의 끔찍한 성능).

이것을 기존 데이터베이스의 대체물로 대체하지는 않지만 알려진 특정 요구를위한 특수 도구입니다.

예를 들어 Amazon Simple DB를 가져 가십시오. 예를 들어 SDB는 기본적으로 거대한 스프레드 시트입니다. 데이터가 어떻게 보이는지라면 잘 작동하며 최고의 확장 성과 단순성이 많은 시간과 비용을 절약 할 수 있습니다.

시스템이 매우 구조적이고 복잡한 쿼리가 필요하지만이 멋진 새 솔루션 중 하나를 고집하면 곧 자신을 찾을 수 있습니다. 모든 고유 한 문제와 함께 아마추어 리시, 잘못 디자인 된 RDBM을 다시 구현합니다.

이와 관련하여, 이것이 당신의 필요에 맞는 지 알지 못하면, 특히 단일 서버 배포 및 겸손한 상태에서 최고의 유연성과 기능을 제공하기 때문에 전통적인 RDBM에서 처음 몇 번의 반복을하는 것이 실제로 더 낫다고 생각합니다. 짐. (보다 캡 정리).

데이터가 어떻게 보이는지, 어떻게 사용되는지에 대한 더 나은 아이디어를 얻으면 대체 솔루션과 요구를 일치시킬 수 있습니다.

클라우드 호스팅 솔루션의 단순성을 원하지만 관계형 데이터베이스가 필요한 경우 다음을 확인할 수 있습니다. 아마존 관계형 데이터베이스 서비스

다른 팁

당신이 찾는 문제는 RDBMS 전문가가 황달 한 눈으로 대체 시스템 중 일부를 보는 이유입니다. 그렇습니다. 대체 시스템은 특정 특정 요구 사항을 매우 빠르게 처리하지만 동일한 데이터로 다른 작업을 수행하자마자 가장 좋은 것은 갑자기 지연이됩니다. 대조적으로, RDBM은 일반적으로 더 큰 aplomb로 변형을 관리한다. Fleetest가 처리하기 위해 미세 최적화 된 전문 워크로드에서 가장 빠르지는 않지만 다른 쿼리를 다루도록 요구할 때 빠르게 악화되는 경우는 거의 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top