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.