이 글에서는 Innodb의 데이터 페이지 크기를 수정하여 MySQL을 최적화하는 방법을 주로 소개합니다. Innodb는 MySQL의 차세대 데이터 엔진으로, 필요한 친구들이 참고할 수 있습니다.
우리는 Innodb의 데이터 페이지를 알고 있습니다. 는 16K이며 시스템에서 이를 변경할 수 있는 방법은 없습니다. 앞으로는 MySQL이 Oracle처럼 여러 데이터 페이지 크기를 지원할 수 있기를 바랍니다.
그러나 실제 애플리케이션에서는 16K가 약간 너무 클 때도 있습니다. 특히 Oracle 또는 SQL SERVER가 매우 잘 실행되고 있고 IO 증가가 너무 명백할 때 많은 기업이 MySQL로 이전한 경우,
데이터 페이지 변경을 고려해 보겠습니다. . 크든 작든.
실제로 innodb의 데이터 페이지 크기도 변경할 수 있습니다. 소스 코드 계층에서 변경한 다음 MySQL을 다시 빌드하기만 하면 됩니다.
변경 방법:
(MySQL-5.1.38 소스 코드를 예로 사용)
위치는 Storage/innobase/ include/univ.i, univ.i에서 검색: UNIV_PAGE_SIZE
/* DATABASE VERSION CONTROL ======================== */ /* The universal page size of the database */ #define UNIV_PAGE_SIZE (2 * 8192) /* NOTE! Currently, this has to be a power of 2 */ /* The 2-logarithm of UNIV_PAGE_SIZE: */ #define UNIV_PAGE_SIZE_SHIFT 14 /* Maximum number of parallel threads in a parallelized operation */ #define UNIV_MAX_PARALLELISM 32
UNIV_PAGE_SIZE는 데이터 페이지 크기이며 기본값은 16K입니다. 다음 설명은 이 값을 거듭제곱으로 설정할 수 있음을 나타냅니다. 2. 이 값은 4k, 8k, 16k, 32K, 64K로 설정할 수 있으며 이는 대규모 응용 프로그램에서는 의미가 없습니다.
UNIV_PAGE_SIZE를 동시에 변경한 후 UNIV_PAGE_SIZE_SHIFT를 변경해야 합니다. 값은 UNIV_PAGE_SIZE의 2제곱이므로 데이터 페이지 설정은 다음과 같습니다.
#define UNIV_PAGE_SIZE_SHIFT 12 if UNIV_PAGE_SIZ=4K #define UNIV_PAGE_SIZE_SHIFT 13 if UNIV_PAGE_SIZ=8K #define UNIV_PAGE_SIZE_SHIFT 15 if UNIV_PAGE_SIZ=32K
예:
innodb의 데이터 페이지를 8K로 변경합니다. , 해당 수정 사항은 다음과 같습니다.
/* DATABASE VERSION CONTROL ======================== */ /* The universal page size of the database */ #define UNIV_PAGE_SIZE 8192 /* NOTE! Currently, this has to be a power of 2 */ /* The 2-logarithm of UNIV_PAGE_SIZE: */ #define UNIV_PAGE_SIZE_SHIFT 13 /* Maximum number of parallel threads in a parallelized operation */ #define UNIV_MAX_PARALLELISM 32
Re 컴파일한 다음 테스트하고 다시 테스트합니다. 행운을 빌어요!
위 내용은 MySQL을 최적화하기 위해 Innodb의 데이터 페이지 크기를 수정하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!