innodb_page_size - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 指定MySQL实例中所有InnoDB表空间的页面大小
    • 您可以使用值64k,32k,16k(默认值),8k或4k页面大小。或者使用字节为单位的页面大小(65536,32768,16384,8192,4096)
    • innodb_page_size只能在初始化MySQL实例之前进行指定,初始化之后无法修改,否则无法启动(5.6.x版本中报错:2017-04-15 13:17:36 5174 [ERROR] InnoDB: innodb-page-size mismatch in data file ./ibdata1,5.7.x版本中报错:2017-04-15T13:19:15.688268+08:00 0 [ERROR] InnoDB: Data file './ibdata1' uses page size 16384, but the innodb_page_size start-up parameter is 4096)。如果未指定值,则使用默认页面大小初始化该实例。
    • MySQL 5.6.x中只支持4K、8K、16K,MySQL 5.7中添加了32k和64k页面大小的支持。对于32k和64k页面大小,最大行长度约为16000字节(16K中因为有双向链表,所以最大行长度是8096字节)。
    • innodb_page_size设置为32KB或64KB时,不支持建表选项ROW_FORMAT = COMPRESSED
    • 对于innodb_page_size = 32k,区大小为2MB。对于innodb_page_size = 64k,区大小为4MB。当使用32k或64k页面大小时,innodb_log_buffer_size系统变量应设置为至少16M(默认值)
    • 默认的16KB页面大小或更大的页面大小适用于大多数应用场景,特别是对于涉及表扫描和涉及批量更新的DML操作。但对于涉及许多短频快的小事务的DML OLTP场景,则较小的页面大小可能会更有助于性能提升,因为当单页包含较多数据行时,各个事务之间的争用可能是一个问题。对于SSD存储设备(SSD通常使用小块)。将InnoDB页面大小保持在接近存储设备块大小的情况下,能最大限度地减少重写到磁盘的没有发生变更的数据量
    • 第一个系统表空间数据文件(ibdata1)的最小文件大小因innodb_page_size值设置不同而不同。有关更多信息,请参阅innodb_data_file_path选项说明部分
    • 全局变量,只读变量,枚举类型,5.7.5及其之前的版本只支持4K、8K、16K页面大小,5.7.6及其之后的版本中增加支持32K、64K页面大小,默认值为16K

上一篇:innodb_stats_transient_sample_pages | 下一篇:innodb_page_cleaners