国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

修改Innodb的數據頁大小以優化MySQL的方法

2024-07-24 13:07:15
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了修改Innodb的數據頁大小以優化MySQL的方法,Innodb是MySQL下一個頗具人氣的數據引擎,需要的朋友可以參考下

我們知道Innodb的數據頁是16K,而且是一個硬性的規定,系統里沒更改的辦法,希望將來MySQL也能也Oracle一樣支持多種數據頁的大小。

但實際應用中有時16K顯的有點大了,特別是很多業務在Oracle或是SQL SERVER運行的挺好的情況下遷到了MySQL上發現IO增長太明顯的情況下,

就會想到更改數據頁大小了。

實際上innodb的數據頁大小也是可以更改的,只是需要在源碼層去更改,然后重新rebuild一下MySQL.

更改辦法:

(以MySQL-5.1.38源碼為例)

位置在storage/innobase/include/univ.i ,在univ.i中查找:UNIV_PAGE_SIZE

 

 
  1. /* 
  2. DATABASE VERSION CONTROL 
  3. ======================== 
  4. */ 
  5.  
  6. /* The universal page size of the database */ 
  7. #define UNIV_PAGE_SIZE (2 * 8192) /* NOTE! Currently, this has to be a 
  8. power of 2 */ 
  9. /* The 2-logarithm of UNIV_PAGE_SIZE: */ 
  10. #define UNIV_PAGE_SIZE_SHIFT 14 
  11.  
  12. /* Maximum number of parallel threads in a parallelized operation */ 
  13. #define UNIV_MAX_PARALLELISM 32 

UNIV_PAGE_SIZE就是數據頁大小,默認的是16K. 后面的備注里標明,該值是可以設置必須為2的次方。對于該值可以設置成4k,8k,16k,32K,64K,在大也沒意義了。

同時更改了UNIV_PAGE_SIZE后需要更改 UNIV_PAGE_SIZE_SHIFT 該值是2的多少次方為UNIV_PAGE_SIZE,所以設置數據頁分別情況如下:

 

 
  1. #define UNIV_PAGE_SIZE_SHIFT 12 if UNIV_PAGE_SIZ=4K 
  2. #define UNIV_PAGE_SIZE_SHIFT 13 if UNIV_PAGE_SIZ=8K 
  3. #define UNIV_PAGE_SIZE_SHIFT 15 if UNIV_PAGE_SIZ=32K 

例子:

更改innodb的數據頁為8K,相應修改為:

 

 
  1. /* 
  2. DATABASE VERSION CONTROL 
  3. ======================== 
  4. */ 
  5.  
  6. /* The universal page size of the database */ 
  7. #define UNIV_PAGE_SIZE 8192 /* NOTE! Currently, this has to be a 
  8. power of 2 */ 
  9. /* The 2-logarithm of UNIV_PAGE_SIZE: */ 
  10. #define UNIV_PAGE_SIZE_SHIFT 13 
  11.  
  12. /* Maximum number of parallel threads in a parallelized operation */ 
  13. #define UNIV_MAX_PARALLELISM 32 

重新編譯,然后測試測試,再測試。Good luck!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 揭阳市| 安陆市| 方山县| 蚌埠市| 绥芬河市| 永修县| 海林市| 吴川市| 五大连池市| 肇庆市| 盐城市| 和政县| 繁昌县| 神农架林区| 内丘县| 三明市| 安图县| 泗洪县| 镇雄县| 仙游县| 和龙市| 林州市| 文安县| 湘乡市| 麻栗坡县| 永安市| 宝坻区| 界首市| 郴州市| 双柏县| 色达县| 麻江县| 武义县| 玛纳斯县| 铜梁县| 方城县| 平远县| 壤塘县| 攀枝花市| 靖边县| 古浪县|