本章讨论用户定义分区。
表分区不同于窗口函数中使用的分区。有关窗口函数的信息,请参见第 14.20 节,“窗口函数”。
在 MySQL 8.4 中,InnoDB
和 NDB
存储引擎提供分区支持。
MySQL 8.4 目前不支持使用除 InnoDB
或 NDB
之外的任何存储引擎(例如 MyISAM
)对表进行分区。尝试使用不支持分区功能的存储引擎创建分区表会失败,并出现ER_CHECK_NOT_IMPLEMENTED
错误。
Oracle 提供的 MySQL 8.4 社区版二进制文件包括 InnoDB
和 NDB
存储引擎提供的分区支持。有关 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 新闻网站,提供 MySQL 相关的博客,对任何使用 MySQL 的人应该都很有用。我们鼓励您查看这里,了解使用 MySQL 分区的博客的链接,或者将您自己的博客添加到我们覆盖的博客中。