更改Innodb的數(shù)據(jù)頁大小以優(yōu)化MySQL的方法案例詳細(xì)說明
發(fā)表時間:2023-08-24 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]這篇文章主要介紹了修改Innodb的數(shù)據(jù)頁大小以優(yōu)化MySQL的方法,Innodb是MySQL下一個頗具人氣的數(shù)據(jù)引擎,需要的朋友可以參考下我們知道Innodb的數(shù)據(jù)頁是16K,而且是一個硬性的規(guī)定,系統(tǒng)里沒更改的辦法,希望將來MySQL也能也Oracle一樣支持多種數(shù)據(jù)頁的大小。但實(shí)際應(yīng)用中有時...
這篇文章主要介紹了修改Innodb的數(shù)據(jù)頁大小以優(yōu)化
MySQL的方法,Innodb是MySQL下一個頗具人氣的數(shù)據(jù)引擎,需要的朋友可以參考下
我們知道Innodb的數(shù)據(jù)頁是16K,而且是一個硬性的規(guī)定,系統(tǒng)里沒更改的辦法,希望將來MySQL也能也Oracle一樣支持多種數(shù)據(jù)頁的大小。
但實(shí)際應(yīng)用中有時16K顯的有點(diǎn)大了,特別是很多業(yè)務(wù)在Oracle或是SQL SERVER運(yùn)行的挺好的情況下遷到了MySQL上發(fā)現(xiàn)IO增長太明顯的情況下,
就會想到更改數(shù)據(jù)頁大小了。
實(shí)際上innodb的數(shù)據(jù)頁大小也是可以更改的,只是需要在源碼層去更改,然后重新rebuild一下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就是數(shù)據(jù)頁大小,默認(rèn)的是16K. 后面的備注里標(biāo)明,該值是可以設(shè)置必須為2的次方。對于該值可以設(shè)置成4k,8k,16k,32K,64K,在大也沒意義了。
同時更改了UNIV_PAGE_SIZE后需要更改 UNIV_PAGE_SIZE_SHIFT 該值是2的多少次方為UNIV_PAGE_SIZE,所以設(shè)置數(shù)據(jù)頁分別情況如下:
#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的數(shù)據(jù)頁為8K,相應(yīng)修改為:
/*
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
重新編譯,然后測試測試,再測試。Good luck!
以上就是修改Innodb的數(shù)據(jù)頁大小以優(yōu)化MySQL的方法實(shí)例詳解的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。