第 26 章 分区

本章讨论用户定义分区

注意

表分区不同于窗口函数中使用的分区。有关窗口函数的信息,请参见第 14.20 节,“窗口函数”

在 MySQL 8.4 中,InnoDBNDB 存储引擎提供分区支持。

MySQL 8.4 目前不支持使用除 InnoDBNDB 之外的任何存储引擎(例如 MyISAM)对表进行分区。尝试使用不支持分区功能的存储引擎创建分区表会失败,并出现ER_CHECK_NOT_IMPLEMENTED 错误。

Oracle 提供的 MySQL 8.4 社区版二进制文件包括 InnoDBNDB 存储引擎提供的分区支持。有关 MySQL 企业版二进制文件中提供的分区支持的信息,请参见第 32 章,MySQL 企业版

如果您是从源代码编译 MySQL 8.4,则使用 InnoDB 支持配置构建就足以生成支持 InnoDB 表分区的二进制文件。有关更多信息,请参见第 2.8 节,“从源代码安装 MySQL”

无需执行任何其他操作即可启用 InnoDB 的分区支持(例如,my.cnf 文件中不需要任何特殊条目)。

无法禁用 InnoDB 存储引擎的分区支持。

有关分区和分区概念的介绍,请参见第 26.1 节,“MySQL 中分区概述”

支持多种类型的分区以及子分区;请参见第 26.2 节,“分区类型”第 26.2.6 节,“子分区”

第 26.3 节,“分区管理” 介绍了在现有分区表中添加、删除和更改分区的各种方法。

第 26.3.4 节,“分区的维护” 讨论了用于分区表的表维护命令。

INFORMATION_SCHEMA 数据库中的 PARTITIONS 表提供了有关分区和分区表的的信息。有关更多信息,请参见第 28.3.21 节,“INFORMATION_SCHEMA PARTITIONS 表”;有关针对此表的查询示例,请参见第 26.2.7 节,“MySQL 分区如何处理 NULL”

有关 MySQL 8.4 中分区的已知问题,请参见第 26.6 节,“分区限制和局限性”

您可能还会发现以下资源在使用分区表时很有用。

其他资源。 关于 MySQL 中用户定义分区的其他信息来源包括:

  • MySQL 分区论坛

    这是官方讨论论坛,面向对 MySQL 分区技术感兴趣或正在尝试使用该技术的任何人。它提供 MySQL 开发人员和其他人员的公告和更新。该论坛由分区开发和文档团队成员监控。

  • PlanetMySQL

    一个 MySQL 新闻网站,提供 MySQL 相关的博客,对任何使用 MySQL 的人应该都很有用。我们鼓励您查看这里,了解使用 MySQL 分区的博客的链接,或者将您自己的博客添加到我们覆盖的博客中。