MYSQL存储引擎InnoDB(三十九):表空间自动扩展大小配置

默认情况下,当独立表空间或通用表空间需要额外空间时,表空间会根据以下规则增量扩展:

1、如果表空间的大小小于1 个扩展区,则一次扩展一页。

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

3、如果表空间的大小超过32个扩展区,则一次扩展四个扩展区。


从 MySQL 8.0.23 开始,独立表空间或通用表空间的扩展量可通过指定 AUTOEXTEND_SIZE选项进行配置。配置更大的扩展大小可以帮助避免碎片并促进大量数据的摄取。

要配置独立表空间的扩展大小,请在CREATE TABLE或ALTER TABLE语句中指定AUTOEXTEND_SIZE大小 :

CREATE TABLE t1 (c1 INT) AUTOEXTEND_SIZE = 4M;
ALTER TABLE t1 AUTOEXTEND_SIZE = 8M;


要配置通用表空间的扩展大小,请在CREATE TABLESPACE或ALTER TABLESPACE语句 中指定AUTOEXTEND_SIZE大小 :

CREATE TABLESPACE ts1 AUTOEXTEND_SIZE = 4M;
ALTER TABLESPACE ts1 AUTOEXTEND_SIZE = 8M;


AUTOEXTEND_SIZE设置必须是 4M 的倍数。指定AUTOEXTEND_SIZE不是 4M 倍数的设置会返回错误。

AUTOEXTEND_SIZE默认设置为 0,这会导致系统根据默认行为扩展表空间。

MySQL 8.0.23 中AUTOEXTEND_SIZE最大设置为 64M。从 MySQL 8.0.24 开始,最大设置为 4GB。

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

InnoDB 页面大小

最小 AUTOEXTEND_SIZE

4K

4M

8K

4M

16K

4M

32K

8M

64K

16M


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

mysql> SELECT @@GLOBAL.innodb_page_size;
+---------------------------+
| @@GLOBAL.innodb_page_size |
+---------------------------+
|                     16384 |
+---------------------------+


当更改表空间的AUTOEXTEND_SIZE设置时,随后发生的第一个扩展会将表空间大小对其到 AUTOEXTEND_SIZE设置的倍数。后续扩展对应配置的大小。

当使用非零AUTOEXTEND_SIZE设置创建独立表空间或通用表空间时,表空间将初始化为指定 AUTOEXTEND_SIZE大小。

ALTER TABLESPACE不能用于配置独立表空间的AUTOEXTEND_SIZE。必须使用ALTER TABLE。

对于在独立表空间中创建的表, 仅当它的AUTOEXTEND_SIZE配置为非零值时才能使用 SHOW CREATE TABLE显示该选项。

要确定任何 InnoDB表空间的AUTOEXTEND_SIZE配置,请查询 INFORMATION_SCHEMA.INNODB_TABLESPACES 表。例如:

mysql> SELECT NAME, AUTOEXTEND_SIZE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES 
       WHERE NAME LIKE 'test/t1';
+---------+-----------------+
| NAME    | AUTOEXTEND_SIZE |
+---------+-----------------+
| test/t1    |                  4194304 |
+---------+-----------------+

mysql> SELECT NAME, AUTOEXTEND_SIZE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES 
       WHERE NAME LIKE 'ts1';
+------+-----------------+
| NAME | AUTOEXTEND_SIZE |
+------+-----------------+
| ts1      |                   4194304 |
+------+-----------------+
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章