日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 默认page大小_Innodb优化之修改页大小

發(fā)布時間:2023/12/10 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 默认page大小_Innodb优化之修改页大小 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MySQL在使用innodb引擎的時候頁大小默認是16K,這個大小對于很多應(yīng)用來說太大了,很多在其他數(shù)據(jù)如ORACLE運行良好的應(yīng)用遷移到innodb后發(fā)現(xiàn)IO壓力偏大,MySQL本身沒有提供修改頁大小的參數(shù),但是我們可以通過修改源碼重新編譯mysql來實現(xiàn),下面來做個測試,做測試的數(shù)據(jù)庫版本為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,下面修改頁面大小相關(guān)的源碼

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。

修改完成后代碼應(yīng)該是:

#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數(shù)據(jù)庫,過程就不寫了。編譯安裝完成后再次查看頁大小:

mysql>

mysql> SHOW GLOBAL STATUS like 'Innodb_page_size';

+------------------+-------+

| Variable_name??? | Value |

+------------------+-------+

| Innodb_page_size | 8192? |

+------------------+-------+

1 row in set (0.00 sec)

mysql>

可以看到頁大小已經(jīng)修改為8K。

總結(jié)

以上是生活随笔為你收集整理的mysql 默认page大小_Innodb优化之修改页大小的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。