作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。

我们知道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!

mysql innodb 大小,更改Innodb 数据页大小优化MySQL相关推荐

  1. java sql变更存储,MySQL更改数据库数据存储目录,mysql数据存储

    MySQL更改数据库数据存储目录,mysql数据存储 MySQL数据库默认的数据库文件位于 /var/lib/mysql 下,有时候由于存储规划等原因,需要更改 MySQL 数据库的数据存储目录.下文 ...

  2. mysql 表 页 行_Mysql之InnoDB行格式、数据页结构

    Mysql架构图 存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB.MyISAM.Memory等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如Mem ...

  3. 【MySQL】InnoDB行格式、数据页结构以及索引底层原理分析

    目录 一.MySQL架构图 二.InnoDB数据页结构 2.1 局部性原理 2.2 InnoDB的数据页格式 三.InnoDB的行格式 3.1 Compact行格式 3.1.1 变长字段长度列表 3. ...

  4. MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...

  5. mysql 执行计划 改变_数据量增加导致mysql执行计划改变解决_MySQL

    bitsCN.com 数据量增加导致mysql执行计划改变解决 收到运维同学电话,mysql服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务.连接继续升高, ...

  6. mysql 怎么查询慢sql语句_如何优化MySQL中查询慢的SQL语句啊?

    追问 恩恩我对sql稍微了解点 不知道怎么优化慢sql 可以指导一下嘛 谢谢啦 可以加下我qq吗 1501630150来自:求助得到的回答 mysql数据库有100万+数据,查询起来很慢了,如何优化 ...

  7. Excel VBA:更改图表数据标记大小和曲线粗细

    在Excel中插入图表后,有时曲线较多,数据标记又太大,而且线条较粗,多条曲线挤压在一起,显得很丑.为了便于观察,可以通过右键更改曲线的粗细和设置数据标记的大小,但线条较多时又是一件很麻烦的事.这里通 ...

  8. mysql查询数据库每张表数据量大小和占用多少空间

    selecttable_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2 ...

  9. innodb buffer pool管理--数据页的访问

最新文章

  1. 高通平台耳机插拔检测
  2. C++,Java,Python,Fortran到底哪个更快?
  3. Android开发-屏幕常亮的方法
  4. XGB模型训练报错 terminate called after throwing an instance of ‘std::bad_alloc‘ what()
  5. C#中类与结构体的区别
  6. SAP BW系统日常维护日常工作及常见的Infopackage错误
  7. 结构设计模式 - Bridge设计模式
  8. sqlplus登录缓慢的问题分析过程及解决小记
  9. python计算空类型_python的变量 类型和存储
  10. odoo Botton标签属性详解
  11. pta 7-5 病毒变种 C语言
  12. GB2312编码规则与代码实现
  13. SpringBoot2.x 集成 腾讯云短信
  14. Git使用学习(七、版本回滚)
  15. 垃圾小白羊的leetcode刷题记录6
  16. UFO-ViT:没有Softmax的高性能线性视觉Transformer
  17. 江苏中理网络科技有限公司介绍
  18. Java百度鹰眼轨迹批量上传
  19. Linux中移植3G上网卡
  20. vue 引入高德地图

热门文章

  1. voip是利用计算机网络,计算机三级网络技术VoIP概述
  2. 概述史:五胡十六国过这么乱的历史怎么可能搞得懂?6000字短文帮您整个清清楚楚...
  3. php设计鸡兔同笼问题解法,鸡兔同笼问题4种解题方法
  4. 函数式编程-Stream流(来源三更草堂)
  5. android 3d城市源码,[转载]android Gallery3D源码分析
  6. HTTP 协议中 Vary
  7. 产品的道、法、术(道篇)——老吴说产品
  8. 分布式机器学习_229页CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘
  9. newman执行测试_Newman的使用讲解
  10. 从零开始学Unity3D: 用AR做生日蛋糕