本章讨论用户定义的分区。
注意表分区不同于窗口函数使用的分区。有关窗口函数的信息,请参见“窗口函数”。
在MySQL 8.0中,InnoDB
和NDB
存储引擎提供了分区支持。
MySQL 8.0当前不支持使用除InnoDB
或外的任何存储引擎对表进行分区NDB
,例如MyISAM
。尝试使用不提供本机分区支持的存储引擎创建分区表失败,并显示 ER_CHECK_NOT_IMPLEMENTED。
Oracle提供的MySQL 8.0社区二进制文件包括InnoDB
和NDB
存储引擎提供的分区支持。有关MySQL企业版二进制文件中提供的分区支持的信息,请参见MySQL企业版。
如果要从源代码编译MySQL 8.0,则配置带有InnoDB
支持的构建足以产生具有分区对InnoDB
表的支持的二进制文件。有关更多信息,请参见“从源代码安装MySQL”。
无需进一步做任何事情即可启用分区支持InnoDB
(例如,文件中不需要特殊条目my.cnf
)。
无法禁用InnoDB
存储引擎的分区支持。
有关分区和分区概念的介绍,请参见“ MySQL中的分区概述”。
支持多种类型的分区以及子分区。请参见“分区类型”和“子分区”。
“分区管理”介绍了在现有分区表中添加,删除和更改分区的方法。
“分区维护”讨论了与分区表一起使用的表维护命令。
数据库中的PARTITIONS
表INFORMATION_SCHEMA
提供有关分区和分区表的信息。有关更多信息,请参见“ INFORMATION_SCHEMA分区表”。有关针对该表的查询的一些示例,请参见“ MySQL分区如何处理NULL”。
有关MySQL 8.0中分区的已知问题,请参见“分区的限制和限制”。
使用分区表时,您可能还会发现以下资源很有用。
其他资源。有关MySQL中用户定义的分区的其他信息来源包括:
MySQL分区论坛
这是对MySQL分区技术感兴趣或正在尝试的人的正式讨论论坛。它具有MySQL开发人员和其他人员的公告和更新。它由分区开发和文档编制团队的成员进行监视。
MikaelRonström的博客
MySQL分区架构师和首席开发人员MikaelRonström经常在此处发布有关他在MySQL分区和NDB集群上的工作的文章。
PlanetMySQL
一个以MySQL相关博客为特色的MySQL新闻网站,使用我的MySQL的任何人都应该对此感兴趣。我们鼓励您在此处检查指向由MySQL分区工作的人保留的博客的链接,或者将您自己的博客添加到其中。