실제로 큰 데이터 세트를 처리하고 처음부터 시작해야하는 경우 외부 컨설턴트가 회사를 더 잘 지원할 수 있을지 확실하지 않습니다. 제발 틀리지 말아주세요.하지만 많은 고객과 함께 프로젝트를 망치면 회사에 PR 영향을 줄 것입니다.
하나의 테이블에 10M 튜플과 관련하여 인덱싱이 좋으면 괜찮습니다. 우리는 하나의 테이블에 여러 개의 100M 튜플을 저장해야합니다.
다음은 페이스 북 데이터베이스 디자인 의지도가있는 2010 년의 게시물입니다. Facebook 데이터베이스 디자인
다음과 같은 파티션 유형에 대한 mysql 문서를 읽을 수 있습니다. MySQL 문서 : Partinioning
MySQL은 다음 유형을 지원합니다.
범위 분할. 이 유형의 파티셔닝은 주어진 범위 내에 속하는 열 값을 기반으로 파티션에 행을 할당합니다. 18.2.1 절“RANGE 파티션”을 참조하십시오.
LIST 파티셔닝. 파티션이 개별 값 세트 중 하나와 일치하는 열을 기반으로 선택된다는 점을 제외하고 RANGE에 의한 파티션과 유사합니다. 18.2.2 절“LIST 분할”을 참조하십시오.
해시 파티셔닝. 이 유형의 파티셔닝을 사용하면 테이블에 삽입 할 행의 열 값에서 작동하는 사용자 정의 표현식이 리턴 한 값을 기반으로 파티션이 선택됩니다. 이 함수는 음수가 아닌 정수 값을 생성하는 MySQL에서 유효한 식으로 구성 될 수 있습니다. 이 유형의 LINEAR HASH 확장도 사용할 수 있습니다. 18.2.3 절.“HASH 분할”을 참조하십시오.
키 분할. 이 유형의 파티셔닝은 평가할 열이 하나 이상 제공되고 MySQL 서버가 자체 해싱 기능을 제공한다는 점을 제외하고 HASH의 파티셔닝과 유사합니다. MySQL에서 제공하는 해싱 함수는 열 데이터 유형에 관계없이 정수 결과를 보장하므로 이러한 열에는 정수 값 이외의 값이 포함될 수 있습니다. 이 유형의 선형 키 (LINEAR KEY)도 사용할 수 있습니다. 18.2.4 절.“키 분할”을 참조하십시오.
I can't believe they would have one global user table with 950 million entries.
나는 그렇게 크지 않다. 더 큰 테이블로 작업했습니다. 꽤 흔합니다. 다른 데이터가 많은 경우 고려할 다른 옵션은 NoSQL 데이터베이스입니다.