10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

15.6.3.9表空间AUTOEXTEND_SIZE配置

默认情况下,当表单文件表空间或通用表空间需要额外的空间时,表空间会按照以下规则递增扩展:

  • 如果表空间的大小小于一个区段,则每次扩展一页。

  • 如果表空间大于1个区但小于32个区,则每次扩展一个区。

  • 如果表空间的大小超过32个区段,则每次扩展4个区段。

有关区段大小的信息,请参见第15.11.2节“文件空间管理”

从MySQL 8.0.23开始,每个表文件或通用表空间的扩展量可以通过指定AUTOEXTEND_SIZE选择。配置更大的扩展大小可以帮助避免碎片化,并促进大量数据的摄入。

要配置每个表文件表空间的扩展大小,请指定AUTOEXTEND_SIZE在一个大小创建表ALTER TABLE声明:

CREATE TABLE t1 (c1 INT) AUTOEXTEND_SIZE = 4M;
修改表t1 AUTOEXTEND_SIZE = 8M;

要配置通用表空间的扩展大小,请指定AUTOEXTEND_SIZE在一个大小创建表空间修改表空间声明:

CREATE TABLESPACE ts1 AUTOEXTEND_SIZE = 4M
修改表空间ts1 AUTOEXTEND_SIZE = 8M
请注意

AUTOEXTEND_SIZEOption也可以在创建undo表空间时使用,但是undo表空间的扩展行为不同。有关更多信息,请参见第15.6.3.4节“撤消表空间”

AUTOEXTEND_SIZE设置必须是4M的倍数。指定一个AUTOEXTEND_SIZE如果设置的值不是4M的倍数,则返回错误。

AUTOEXTEND_SIZE默认设置为0,这将导致表空间按照上述默认行为进行扩展。

的最大AUTOEXTEND_SIZEMySQL 8.0.23设置为64M。从MySQL 8.0.24,最大设置是4GB。

最低AUTOEXTEND_SIZE设置取决于InnoDB页面大小,如下表所示:

InnoDB页面大小 最低AUTOEXTEND_SIZE
4 k 4米
8 k 4米
16 k 4米
32 k 8米
64 k 16米

默认的InnoDB页面大小为16K(16384字节)。来确定InnoDB页面大小的MySQL实例,查询innodb_page_size设置:

mysql >选择@@GLOBAL.innodb_page_size;+---------------------------+ | @@ 全球。innodb_page_size|+---------------------------+ | 16384 | +---------------------------+

AUTOEXTEND_SIZE设置时,随后发生的第一个扩展会将表空间大小增加到AUTOEXTEND_SIZE设置。后续扩展的大小为配置的大小。

当每个表文件或通用表空间使用非零创建时AUTOEXTEND_SIZE设置时,表空间在指定的位置初始化AUTOEXTEND_SIZE大小。

修改表空间不能用于配置AUTOEXTEND_SIZE表文件表空间的。ALTER TABLE必须使用。

对于在每个表文件表空间中创建的表,显示创建表显示了AUTOEXTEND_SIZE选项,仅在将其配置为非零值时使用。

来确定AUTOEXTEND_SIZE对于任何InnoDB表空间,查询INFORMATION_SCHEMA。INNODB_TABLESPACES表格例如:

mysql> SELECT NAME, AUTOEXTEND_SIZE FROM INFORMATION_SCHEMA。INNODB_TABLESPACES WHERE NAME LIKE 'test/t1';+---------+-----------------+ | 名字| AUTOEXTEND_SIZE  | +---------+-----------------+ | 测试/ t1 | 4194304  | +---------+-----------------+ mysql >选择名字,从INFORMATION_SCHEMA AUTOEXTEND_SIZE。INNODB_TABLESPACES WHERE NAME LIKE 'ts1';+------+-----------------+ | 名字| AUTOEXTEND_SIZE  | +------+-----------------+ | 壹空间| 4194304  | +------+-----------------+
请注意

一个AUTOEXTEND_SIZE的值,这是默认设置,意味着根据上面描述的默认表空间扩展行为扩展表空间。