本章讨论 用户定义的分区。
表分区不同于窗口函数中的分区。有关窗口函数的信息,请参阅 第 14.20 节,“窗口函数”。
在 MySQL 8.3 中,分区支持由 InnoDB
和 NDB
存储引擎提供。
MySQL 8.3 目前不支持使用除 InnoDB
或 NDB
之外的存储引擎(例如 MyISAM
)的表分区。尝试使用不支持本机分区的存储引擎创建分区表将失败,返回 ER_CHECK_NOT_IMPLEMENTED
。
Oracle 提供的 MySQL 8.3 社区二进制文件包括 InnoDB
和 NDB
存储引擎提供的分区支持。有关 MySQL Enterprise Edition 二进制文件中提供的分区支持的信息,请参阅 第 32 章MySQL Enterprise Edition。
如果您从源代码编译 MySQL 8.3,只需配置 InnoDB
支持以生成具有分区支持的二进制文件。有关更多信息,请参阅 第 2.8 节,“从源代码安装 MySQL”。
不需要在 my.cnf
文件中添加特殊条目以启用 InnoDB
的分区支持。
无法禁用 InnoDB
存储引擎的分区支持。
请参阅 第 26.1 节,“MySQL 中的分区概述”,了解分区和分区概念的介绍。
支持多种类型的分区,以及子分区;请参阅 第 26.2 节,“分区类型” 和 第 26.2.6 节,“子分区”。
第 26.3 节,“分区管理”,涵盖了在现有分区表中添加、删除和修改分区的方法。
第 26.3.4 节,“分区维护”,讨论了与分区表一起使用的表维护命令。
PARTITIONS
表在 INFORMATION_SCHEMA
数据库中提供了关于分区和分区表的信息。请参阅 第 28.3.21 节,“INFORMATION_SCHEMA PARTITIONS 表”,以获取更多信息;对于该表的查询示例,请参阅 第 26.2.7 节,“MySQL 分区如何处理 NULL”。
有关 MySQL 8.3 中分区的已知问题,请参阅 第 26.6 节,“分区限制和限制”。
您可能还会发现以下资源在使用分区表时非常有用。
其他资源。 其他关于 MySQL 用户定义分区的信息来源包括以下内容:
-
这是 MySQL 分区技术的官方讨论论坛,由 MySQL 开发人员和其他人维护。它包含来自 MySQL 开发团队和文档团队的公告和更新。
-
这是一个 MySQL 新闻站点,涵盖了 MySQL 相关的博客,对于使用 MySQL 的人非常有用。我们鼓励您在这里查找与 MySQL 分区相关的博客链接,或者将您的博客添加到这里。