InnoDB“自动扩展”功能

发布于 2024-10-14 20:23:06 字数 259 浏览 3 评论 0原文

我对 InnoDB 的使用很困惑。 我的服务器存储空间有限,并且我读到 InnoDB 表以 10MB 自动扩展创建默认大小的表。

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

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

例如:

  • Table1=默认10MB;
  • 表2 = 默认0.5MB;
  • 等等...

可能吗?

I'm very confused about use of InnoDB.
I've a server with limited storage and I've read that InnoDB tables creates default size table at 10MB autoextend.

I don't understand "autoextend" function. If I exceed 10MB for one table, MySQL automatically increase memory (10Mb + 10MB)?

So, can I change default limit for any table?

For example:

  • Table1 = default 10MB;
  • Table2 = default 0.5MB;
  • etc...

is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风向决定发型 2024-10-21 20:23:06

针对 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 默认情况下在 file-per-table 表空间中创建表。此行为由 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 选项进行配置。配置较大的扩展大小有助于避免碎片并促进大量数据的摄取。

Updated for MySQL 8.0

If you don't enable innodb_file_per_table or specify a tablespace for a table explicitly, InnoDB data will be stored in a set of files called a system tablespace.

Latest versions of MySQL enable innodb_file_per_table by default.

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

InnoDB creates tables in file-per-table tablespaces by default. This behavior is controlled by the innodb_file_per_table variable. Disabling innodb_file_per_table causes InnoDB to create tables in the system tablespace.

When this fileset has no free space left, the size of the last file in the set is increased in chunks specified by the autoextend parameter, which is 8MB by default.

InnoDB will only grow the last file in the set.

If you use innodb_file_per_table then each table uses its own tablespace. It is always stored in one file (residing in the db directory).

This file grows in chunks of configurable size, which by default is 4M.

In latest versions of MySQL, you can also create tablespaces explicitly and assign tables to them. Tablespaces that you create explicitly are called general tablespaces. You can configure the auto-extend option for them as well.

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

From MySQL 8.0.23, the amount by which a file-per-table or general tablespace is extended is configurable by specifying the AUTOEXTEND_SIZE option. Configuring a larger extension size can help avoid fragmentation and facilitate ingestion of large amounts of data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文