修改Innodb的数据页大小以优化MySQL的方法
网络编程 2021-07-05 15:27www.168986.cn编程入门
这篇文章主要介绍了修改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
/ 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 该值是2的多少次方为UNIV_PAGE_SIZE,所以设置数据页分别情况如下
#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
重新编译,然后测试测试,再测试。Good luck!
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指