2013-09-03 5 views
0

3 개월의 데이터, 1 ~ 2TB가 될 수있는 많은 양의 역사적인 '닫힌'행과 3 개월 동안의 고해상도 '열린'행의 양이 적습니다. 대부분의 행은 단 몇 분만 지나면 '닫힌'상태로 전환 될 가능성이 높습니다.파티션 당 다른 스토리지 엔진 사용

이상적으로는 하나의 개념적 테이블로 SELECT 쿼리에 표시하고 싶습니다.

하지만 아래에서는 '닫힌'행을 customer_id로 파티션하고 공격적으로 압축하는 등의 작업에 열의가 있습니다. '열린'행의 경우 마침내 '닫힌'상태로 이동하기 전에 여러 번 빠르게 업데이트해야 할 수 있습니다.

데이터를 어떻게 나눌 수 있습니까?

  • MERGE 테이블은
  • SPIDER 및 CONNECT 여러 서버를 의미 MYISAM을 것 같다?
  • PARTITION을 사용하면 파티션 당 엔진 및 압축을 지정할 수 없습니다.
  • 및 PARTITION 기준으로 SUBPARTITION을 지정할 수 없습니까?
  • '닫힌'부울은 기본 키에 있어야합니까?
  • VIEW에 의해 두 개의 테이블이 결합 된 경우 쿼리 계획자는 모든 테이블에 대해 실행되는 것을 피하는 방법을 알고 있습니까?
  • 파티션을 빠르게합니다. 예를 들어 여러 파티션을 터치하는 SELECT. 평행 한 노동자?

대신 다른 DBMS에서 효율적으로 수행 할 수 있습니다. PostgreSQL?

답변

1

나는 두 개의 별도 테이블을 가지고 있다고 제안한다. 하나는 아카이브 용이고 다른 하나는 작업 세트 용이다. 나는 MySQL 뷰가 이것을 최적화 할만큼 똑똑하다고 생각하지 않는다. 또한 스키마를 완벽하게 제어 할 수는 있지만 응용 프로그램에 부담을줍니다.

관련 문제