mysql 默认page大小_Innodb优化之修改页大小
MySQL在使用innodb引擎的時候頁大小默認是16K,這個大小對于很多應用來說太大了,很多在其他數據如ORACLE運行良好的應用遷移到innodb后發現IO壓力偏大,MySQL本身沒有提供修改頁大小的參數,但是我們可以通過修改源碼重新編譯mysql來實現,下面來做個測試,做測試的數據庫版本為mysql-5.5.25:
先查看當前的頁大小:
mysql> SHOW GLOBAL STATUS like 'Innodb_page_size';
+------------------+-------+
| Variable_name??? | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)
mysql>
可以看到默認情況下mysql的頁大小為16k,下面修改頁面大小相關的源碼
vim /mysql-5.5.25/storage/innobase/include/univ.i
#define UNIV_WORD_ALIGNMENT???? UNIV_WORD_SIZE
/*
DATABASE VERSION CONTROL
========================
*/
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT??? 14?????????????????????????? ------------這個變量是修改為13/* The universal page size of the database */
#define UNIV_PAGE_SIZE????????? (1 << UNIV_PAGE_SIZE_SHIFT)? --------這個變量就是Innodb頁的大小,1左移13位剛好是8192。
修改完成后代碼應該是:
#define UNIV_WORD_ALIGNMENT???? UNIV_WORD_SIZE
/*
DATABASE VERSION CONTROL
========================
*/
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT????13
/* The universal page size of the database */
#define UNIV_PAGE_SIZE????????? (1 << UNIV_PAGE_SIZE_SHIFT)
對于mysql 5.1的版本代碼和5.5的修改方式稍微不同,下面的5.1版本代碼的修改方式:
/*
DATABASE VERSION CONTROL
========================
*/
/* The universal page size of the database */
#define UNIV_PAGE_SIZE????????? (2 * 8192) /* NOTE! Currently, this has to be a ------修改為(2*4096)
power of 2 */
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT?14?? ------修改為13(該值是2的多少次方為UNIV_PAGE_SIZE)
/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM?32
修改紅色部分即可,記住UNIV_PAGE_SIZE大小只能是2的次方,如8K,16K,32k,UNIV_PAGE_SIZE_SHIFT?該值是2的多少次方為UNIV_PAGE_SIZE。
修改完成保存退出然后重新編譯安裝Mysql數據庫,過程就不寫了。編譯安裝完成后再次查看頁大小:
mysql>
mysql> SHOW GLOBAL STATUS like 'Innodb_page_size';
+------------------+-------+
| Variable_name??? | Value |
+------------------+-------+
| Innodb_page_size | 8192? |
+------------------+-------+
1 row in set (0.00 sec)
mysql>
可以看到頁大小已經修改為8K。
總結
以上是生活随笔為你收集整理的mysql 默认page大小_Innodb优化之修改页大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学计算机基础字母缩写大全,大学计算机基
- 下一篇: [iOS] Win8下在Vmware11