2009-11-13 3 views
0

주석 테이블이있는 새 데이터베이스를 설정합니다. 나는이 테이블이 상당히 커질 것이라고 기대했다. 사이트의 나머지 데이터와 동일한 데이터베이스에이 테이블을 보관하고 싶지 않은 특별한 이유가 있는지 궁금합니다.은 mysql에서 한 테이블의 데이터 양이 성능에 영향을 미칩니다.

+0

다소 접하기 때문에 (대답이 아닌 주석), 경험상 부피가 큰 테이블의 메타 데이터를 별도의 테이블에 넣는 것이 성능 향상에 도움이 될 수 있습니다. 그래서 당신은 PK, author_id, post_id, 아마도 관련된 스레드 관련 칼럼들과 같은 'comments_meta'를 가질 수 있습니다. 그런 다음 PK ('comments_meta'로 다시 링크)와 ' 'comment_data'. 그렇다면 메타 데이터 만 필요로하는 상황에서 쿼리가 더 큰 테이블을 건드리지 않아도됩니다. YMMV –

+0

@Ben Dunlap : 그것은 어느 엔진이 사용되고 있는지에 전적으로 의존 할 것입니다. 예를 들어, Innodb는 이미 TEXT와 BLOB 컬럼을 다른 컬럼과 별도로 저장한다. – Powerlord

답변

3

데이터 양은 모든 RDBMS의 성능에 영향을 미치지 만이 테이블이 동일한 서버의 별도 데이터베이스에 있어야 할 이유는 없습니다. 테이블이 실제로 많은 삽입 작업으로 매우 커질 경우 ETL 프로세스를 사용하면 빠른 선택을 위해 복사본을 보관할 수 있습니다 (주로 선택 항목의 성능 향상에도 불구하고 인덱스가 삽입에 부정적인 영향을 줄 수 있기 때문)

+0

+1은 ETL 링크입니다. 이제 저는 오늘 전에 "내 형편없는 성능 해킹"이라고 부르는 공식 TLA를 받았습니다. –

+1

그 GPH되지 않을까요? :) –

1

지금은 같은 데이터베이스에 테이블을 유지하십시오. 그러나 레코드 수가 증가하면 삽입 속도가 느려집니다.

성능을 수용 할 수없는 경우 고려해야 할 몇 가지 옵션이 있습니다. 예를 들어 데이터를 분할 할 수 있고 별도의 데이터베이스에있는 여러 테이블로 분할 할 수 있습니다.

관련 문제