2010-12-31 2 views
0

그래서 나는 잠재적 인 통계 금광 인 웹 커뮤니티를위한 MySQL 데이터베이스를 가지고 있습니다. 현재 정규화 된 데이터베이스에서 모든 종류의 불쾌한 쿼리를 통해 작성된 통계를 제공하고 있습니다. 공유 호스팅에서 이와 같은 쿼리에 대해 "인내 한계"를 겪었으며 데이터웨어 하우징 및 일일 크론 작업으로 이동하여 통계 업데이트의 100 배 증가에 대한 즉각적인 업데이트를 희생했습니다.데이터웨어 하우스를 만들거나 새로운 데이터베이스를 만들거나 기존 데이터베이스에 테이블을 쌓기를 원하십니까?

저는 데이터웨어 하우스, 특히 스타 스키마에 대해 읽기 시작했습니다. 모두 매우 간단합니다.

내 질문은 본질적으로 - 그 모든 쓰레기를 새 데이터베이스에 던지거나 내 기존 MySQL 데이터베이스에 테이블을 쌓아 두어야합니까? 현재 데이터베이스에는 47 개의 테이블이 있으며 그 중 최대 테이블에는 30,000 개의 레코드가 있습니다. 이 기능은 일반 엔터프라이즈 애플리케이션과 비교하면별로 좋지 않지만 일반적인 엔터프라이즈 애플리케이션은 공유 호스팅에서 실행되지 않습니다.

내 하드웨어 제한을 염두에두면 어떤 방법이 더 좋을까요?

정말 이것에 대해 많이 알지는 못하지만, 테이블 A를 읽은 다음 테이블 B를 업데이트하는 것이 데이터베이스 전체에서보다 동일한 데이터베이스에서 훨씬 쉽다고 가정합니다.

내 DB의 테이블 수에주의해야합니까?

답변

2

성능을 향상시켜야하는 경우 미리 설정 한보고 테이블 세트 만 만들어야합니다. 적은 노력과 큰 성능 향상. 설명 된 데이터 볼륨을 사용하면 웹 커뮤니티 사용자에게 눈에 띄는 영향을 미치지 않습니다.

다른 데이터베이스 접근 방식은 여러 가지 장점이 있습니다 (아래 참조). 데이터베이스 호스트에있는 것처럼 얻을 수있는 이점은 없을 것이라고 생각합니다.

  • 서로 다른 DW에 대한 SLA 및 웹 사이트를 지원할 수
  • DW 및 웹 데이터베이스가 다른 구성
  • 을 가질 수
  • DW 데이터베이스입니다 기본적으로 읽기 전용 일
  • DW 및 웹 데이터베이스의 큰 부분에 대한 다른 릴리스주기를 가질 수 있습니다 (큰)
  • 일반적인 DW 쿼리 (많은 양의 데이터)로 인해 웹 DB의 캐시가 삭제되지 않습니다.
+0

나는 나의 대답을 썼다. 그것은 당신의 대답이었다. 그래서 +1했다. –

0

수천 (또는 수만) 개의 테이블이있을 때까지는 특정 데이터베이스의 테이블 수는 일반적으로 문제가되지 않으며 일반적으로 최대 파일 수와 관련된 파일 시스템 제한으로 인해 이러한 문제가 발생합니다 디렉토리.

사용중인 스토리지 엔진이 무엇인지 밝히지 않았습니다. 일반적으로 데이터베이스의 인덱스를 메모리에 삽입하여 삽입/업데이트/삭제 성능을 향상 시키려면 키 버퍼 또는 버퍼 풀의 크기가 인덱스의 "최신"부분을 보유 할만큼 충분히 커야합니다.

+0

특별한 이유가 있지만 현재 MyISAM을 사용하고 있습니다. – Drew

관련 문제