프로젝트 용 mysql 데이터베이스 디자인을 구현하려고합니다. 문제는 최상의 해결책으로 떠오르고 있습니다. 기본적으로 내 응용 프로그램에서는 약 10-30 행을 사용자 당 삽입해야합니다. 기본 키는 임의의 CHAR (16) 문자열입니다. 또한 datetime 인덱스와 "data"라는 추가 행 (인덱스 포함)이 있습니다.데이터베이스 디자인
매일 매일 테이블에 많은 양의 삽입 및 찾아보기가 있습니다. 검색은 항상 기본 키를 기반으로 결합되므로 (사용자 당 10-30 행을 합치는 경우)
때때로 특정 몇 개월 (또는 1 년 내내)을보고 "데이터"색인에서 mysql GROUP BY 기능을 사용할 수 있어야합니다.
현재 볼륨 및 예상치에서 테이블이 9.3m 행/월 증가 할 것으로 예상됩니다. 나는 이것이 증가 할 것을 기대한다.
제 질문은 이것입니다 : mysql 파티션, 프로그램 테이블 분리 또는 다른 솔루션? 월 또는 연도별로 가장 잘 구분되는 것들입니까? 우리는 RHEL에서 실행 중이므로, mysql 5.1을 사용하는 것은 약간의 작업 일지 모르지만 더 나은 솔루션이라면 그만한 가치가있을 것이다.
innoDB는 이미이 프로젝트에 선택되었습니다. 날마다 성과가 가장 큰 관심사입니다.
어떻게 든 키를 자동 증가시킬 수 없다면 Hi-Lo 키 생성 알고리즘을 사용할 수 있습니다. –
자동 증가를 알고 있지만 순차적 ID가있는 테이블을 병합하는 것은 어려울 것입니다. – jwzk
"무작위"ID를 가진 테이블을 병합하는 것은 특히 중복이있을 때 큰 어려움이 될 것입니다! –