MySQL内核月报 2014.08-MariaDB·分支特性·支持大于16K的InnoDB Page Size
2023-09-14 09:00:57 时间
背景
最近发布的MariaDB 10.1 Alpha版本,提交了一个改动,放宽了InnoDB Page =16K的限制,将上限提高到64K。 从MDEV-6075需求文档中可以看出,目前只支持COMPACT的结构,DYNAMIC结构能否支持还在研究,COMPRESSED结构则确定无法支持。
业务应用
什么情况下需要64K这么大的页面呢? 我们知道一个Page,不是所有的page_size都可以用来存数据,还有一些管理信息要存,例如页头和页尾(InnoDB Page)。 此外,InnoDB Buffer Pool管理页面本身也有代价,Page数越多,那么相同大小下,管理链表就越长。
因此当我们的数据行本身就比较长,尤其是做大块插入的时候,更大的页面更有利于提升如速度,因为一个页面可以放入更多的行,每个IO写下去的大小更大,就可以以更少的IOPS写更多的数据。 而且,当行长超过8K的时候,如果是16K的页面,就会强制转换一些字符串类型为TEXT,把字符串主体转移到扩展页中,会导致读取列需要多一个IO,更大的页面也就支持了更大的行长,64K页面可以支持近似32K的行长而不用使用扩展页。 但是,如果是短小行长的随机读取和写入,则不适合使用这么大的页面,这会导致IO效率下降,大IO只能读取到小部分有效数据,得不偿失。
【MySQL从入门到精通】【高级篇】(十二)InnoDB数据存储结构概述 上一篇文章我们介绍了【MySQL从入门到精通】【高级篇】(十一)Hash索引、AVL树、B树与B+树对比。这篇文章接着来介绍InnoDB数据存储结构。
【MySQL从入门到精通】【高级篇】(九)InnoDB的B+树索引的注意事项 上一篇文章我们介绍了聚簇索引,非聚簇索引以及联合索引【MySQL从入门到精通】【高级篇】(八)聚簇索引&非聚簇索引&联合索引。我们在介绍B+树索引的时候,是先把存储用户记录的叶子节点都画出来,然后接着画存储目录记录的内节点,实际上B+树的形成过程不是这样的
db匠 rds内核团队秘密研发的全自动卖萌机. 追加特效: 发数据库内核月报. 月报传送: http://mysql.taobao.org/monthly/
相关文章
- 检查MySQL服务器是否已启动(查看mysql是否启动)
- MySQL数据库灵活实用的备份服务器(mysql备份服务器)
- MySQL数据库事务:实现原理及应用(mysql数据库事务原理)
- MySQL优化:获取更优性能的方法.(mysql优化方法)
- MySQL去重的正确方式(mysql怎么去重)
- Mysql 求出时间差:一招制胜(mysql求时间差)
- MySQL自动提交:让事务操作更简单!(mysql自动提交事务)
- MySQL严格模式设置操作指南,关闭严格模式让MySQL更容易支持应用程序的多样化需求!(mysql严格模式关闭)
- 实现PHP与MySQL的无缝连接,增强web开发效率(让php支持mysql)
- 如何通过MySQL连接建立网站数据库?(网站连接mysql)
- 解读:MySQL数据库在分区技术方面的不足(mysql不支持分区)
- MySQL中文支持:开启本地化体验(mysql中文语言)
- 下载MySQL服务器端:为您的数据管理提供支持(mysql服务器端下载)
- Bat 批处理工具快速备份 MySQL 数据库(bat 备份 mysql)
- 64 位系统上 MySQL 的安装过程(64 位系统装mysql)
- MySQL双重联接解决不定层级递归的问题(mysql不定层级递归)
- MySQL不安装能否正常使用(mysql不安装行不行)
- 为什么MySQL不支持重复读(mysql不可以重复读吗)
- MySQL无法支持的数据类型(mysql不支持的类型)
- 解决方案使用MariaDB代替MySQL在树莓派上运行(mysql不支持树莓派)
- MySQL不支持多实例,使用需注意(mysql 不支持多实例)
- MySQL中的列子查询不被支持(mysql不支持列子查询)
- MySQL数据库不支持全连接操作,详解查询中的连接方式(mysql 不支持全连接)
- MySQL不支持中文输入,如何解决(mysql不支持中文输入)
- 深入了解MySQL为什么MySQL不支持并行操作(mysql不支持并行)