zoukankan      html  css  js  c++  java
  • MariaDB · 分支特性 · 支持大于16K的InnoDB Page Size

    背景

    最近发布的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》读书笔记--Schema与数据类型优化
    小程序从零开始 新手必看(2)
    小程序从零开始 新手必看(1)
    Web 前端
    摒弃 react-redux: 非侵入式状态共享实现
    Web 前端
    Web 前端
    Web 前端
    vue实现打印、批量打印
    JS脱敏带表情的字符串
  • 原文地址:https://www.cnblogs.com/lovezhr/p/13263013.html
Copyright © 2011-2022 走看看