2010-12-21 6 views
1

테이블에 컬럼이 많지만 그 중 하나만 사용되는 경우 (포럼 게시물의 제목 컬럼), 성능을 향상시키는 방법은 테이블 하나에 제목 만 있고 다른 테이블에 다른 열 (예 : 포럼 게시물 본문)이 들어있는 두 개의 테이블에 대한 파티션이어야합니다.MySQL의 테이블 파티션

그러나, 경우에 그 메모리에 (예 : 포럼 게시물의 몸으로) 모든 컬럼의 부하를 방지하기 위해 충분하고, 파티션의 필요성을 제거하지 않습니다

select ForumTitle from Forum; 

를 사용할 수 있습니까?

감사합니다,

조엘

답변

2

번호 테이블을 분할하는 아이디어는 결과 테이블이 훨씬 작이다; 그것은 더 적은 페이지에 적합합니다. 따라서 MySQL이 데이터에 자유롭게 액세스해야하는 경우 ForumTitles을 포함하는 데이터를 요청한 기회가 이미 메모리에 남아있을 가능성이 훨씬 더 큽니다.

테이블에 많은 필드가 포함되어 있으면 동일한 양의 ForumTitle을 캐싱하기 위해 더 많은 페이지를 메모리에 캐시해야합니다.

MySQL은 행의 모든 ​​열을 페이지에 순차적으로 저장하고 행의 일부만로드하거나 캐시 할 수 없습니다.