第26章 分区
本章讨论了用户定义的分区。
表格分区与窗口函数中使用的分区不同。有关窗口函数的信息,请参阅第14.20章,“窗口函数”。
在 MySQL 8.4 中,分区支持由 InnoDB
和 NDB
存储引擎提供。
MySQL 8.4 目前不支持使用任何其他存储引擎(如 MyISAM
)以外的表格分区。尝试使用不支持原生分区功能的存储引擎创建分区表将失败,并返回 ER_CHECK_NOT_IMPLEMENTED
错误。
Oracle 提供的 MySQL 8.4 社区二进制版本包括由 InnoDB
和 NDB
存储引擎提供的分区支持。有关 MySQL Enterprise Edition 二进制版本中提供的分区支持信息,请参阅第32章
,《MySQL Enterprise Edition》。
如果您正在从源代码编译 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的人来说,这是一个有用的资源。我们鼓励您查看这里的链接,以获取分区技术中工作人员的博客,或将自己的博客添加到这些内容中。