首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InnoDB“自动扩展”函数

问InnoDB“自动扩展”函数
EN

Stack Overflow用户
提问于 2011-01-27 10:51:27
回答 1查看 2.1K关注 0票数 2

我对InnoDB的使用非常困惑。我有一个存储空间有限的服务器,并且我看到InnoDB表创建了10 at自动扩展的默认大小表。

我不明白“自动扩展”功能。如果一个表的内存超过10 If,MySQL会自动增加内存(10 If+10 If)?

因此,我可以更改任何表的默认限制吗?

例如:

  • Table1 =默认10;
  • Table2=默认

有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-27 10:55:00

更新为MySQL 8.0

如果不显式地启用innodb_file_per_table或为表指定表空间,InnoDB数据将存储在一组称为系统表空间的文件中。

MySQL的最新版本默认启用innodb_file_per_table。

https://dev.mysql.com/doc/refman/8.0/en/innodb-file-per-table-tablespaces.html

默认情况下,

InnoDB在每个表空间中创建表.此行为由innodb_file_per_table变量控制。禁用innodb_file_per_table会导致InnoDB在系统表空间中创建表。

当此文件集没有空闲空间时,集合中最后一个文件的大小以块形式增加,该块由autoextend参数指定,默认为8MB。

InnoDB只会增长集合中的最后一个文件。

如果使用innodb_file_per_table,那么每个表都使用自己的表空间。它总是存储在一个文件中(驻留在db目录中)。

此文件以可配置大小的块增长,默认为4M。

在最新版本的MySQL中,还可以显式创建表空间并将表分配给它们。显式创建的表空间称为通用表空间。您也可以为他们配置自动扩展选项。

https://dev.mysql.com/doc/refman/8.0/en/innodb-file-per-table-tablespaces.html

来自MySQL 8.0.23,扩展每个表或普通表空间的文件的数量可以通过指定AUTOEXTEND_SIZE选项进行配置。配置更大的扩展大小可以帮助避免碎片化,并便于大量数据的摄入。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4815379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档