Spec-Zone.ru › MySQL 9.2

17.6.3.9 Настройка параметра AUTOEXTEND_SIZE табличного пространства

По умолчанию, когда файловому или общему табличному пространству требуется дополнительное место, табличное пространство расширяется по следующему правилу:

  • Если размер табличного пространства меньше одного экстента, оно расширяется на одну страницу за раз.

  • Если размер табличного пространства больше 1 экстента, но меньше 32 экстентов, оно расширяется на один экстент за раз.

  • Если размер табличного пространства больше 32 экстентов, оно расширяется на четыре экстента за раз.

Сведения о размере экстентов см. в разделе 17.11.2 «Управление пространством файлов».

Размер расширения файлового или общего табличного пространства можно настроить, указав параметр AUTOEXTEND_SIZE. Настройка большего размера расширения может помочь избежать фрагментации и облегчить загрузку больших объемов данных.

Для настройки размера расширения файлового табличного пространства укажите размер AUTOEXTEND_SIZE в CREATE TABLE или ALTER TABLE операторе:

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

ALTER TABLE t1 AUTOEXTEND_SIZE = 8M;

Для настройки размера расширения общего табличного пространства укажите размер AUTOEXTEND_SIZE в CREATE TABLESPACE или ALTER TABLESPACE операторе:

CREATE TABLESPACE ts1 AUTOEXTEND_SIZE = 4M;

ALTER TABLESPACE ts1 AUTOEXTEND_SIZE = 8M;
Примечание

Параметр AUTOEXTEND_SIZE также можно использовать при создании табличного пространства отката, но поведение расширения для табличных пространств отката отличается. Дополнительные сведения см. в разделе 17.6.3.4 «Табличные пространства отката».

Значение AUTOEXTEND_SIZE должно быть кратно 4 МБ. Указание значения AUTOEXTEND_SIZE, которое не кратно 4 МБ, приведет к ошибке.

Значение AUTOEXTEND_SIZE по умолчанию равно 0, что приводит к расширению табличного пространства в соответствии с описанным выше поведением по умолчанию.

Максимальное разрешенное значение AUTOEXTEND_SIZE составляет 4 ГБ. Максимальный размер табличного пространства описан в разделе 17.21 «Ограничения InnoDB».

Минимальное значение AUTOEXTEND_SIZE зависит от размера страницы InnoDB, как показано в следующей таблице:

Размер страницы InnoDB Минимальное значение AUTOEXTEND_SIZE
4K 4M
8K 4M
16K 4M
32K 8M
64K 16M

Размер страницы по умолчанию InnoDB равен 16 КБ (16384 байта). Чтобы определить размер страницы InnoDB для вашей инстанции MySQL, выполните запрос к значению 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.

Для таблиц, созданных в файловых табличных пространствах, SHOW CREATE TABLE отображает параметр AUTOEXTEND_SIZE только при его ненулевом значении.

Чтобы определить значение AUTOEXTEND_SIZE для любого InnoDB табличного пространства, запросите таблицу схемы информации 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 |
+------+-----------------+
Примечание

Значение AUTOEXTEND_SIZE, равное 0, которое является значением по умолчанию, означает, что табличное пространство расширяется в соответствии с поведением расширения табличного пространства по умолчанию, описанным выше.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/innodb-tablespace-autoextend-size.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API