MySQL 5.6 参考手册  /  第十九章分区

第十九章分区

本章讨论MySQL对 用户自定义分区的实现。SHOW PLUGINS您可以通过检查语句 的输出来确定您的 MySQL 服务器是否支持分区,如下所示:

笔记

以前版本的 MySQL 有这个 have_partitioning变量,它在 MySQL 5.6.1 中被弃用和删除。

mysql> SHOW PLUGINS;
+------------+----------+----------------+---------+---------+
| Name       | Status   | Type           | Library | License |
+------------+----------+----------------+---------+---------+
| binlog     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| partition  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| ARCHIVE    | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| CSV        | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| FEDERATED  | DISABLED | STORAGE ENGINE | NULL    | GPL     |
| MEMORY     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| InnoDB     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| MyISAM     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     |
| ndbcluster | DISABLED | STORAGE ENGINE | NULL    | GPL     |
+------------+----------+----------------+---------+---------+
11 rows in set (0.00 sec)

您还可以 INFORMATION_SCHEMA.PLUGINS使用与此类似的查询来检查表:

mysql> SELECT
    ->     PLUGIN_NAME as Name,
    ->     PLUGIN_VERSION as Version,
    ->     PLUGIN_STATUS as Status
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_TYPE='STORAGE ENGINE';
+--------------------+---------+--------+
| Name               | Version | Status |
+--------------------+---------+--------+
| binlog             | 1.0     | ACTIVE |
| CSV                | 1.0     | ACTIVE |
| MEMORY             | 1.0     | ACTIVE |
| MRG_MYISAM         | 1.0     | ACTIVE |
| MyISAM             | 1.0     | ACTIVE |
| PERFORMANCE_SCHEMA | 0.1     | ACTIVE |
| BLACKHOLE          | 1.0     | ACTIVE |
| ARCHIVE            | 3.0     | ACTIVE |
| InnoDB             | 5.6     | ACTIVE |
| partition          | 1.0     | ACTIVE |
+--------------------+---------+--------+
10 rows in set (0.00 sec)

在任何一种情况下,如果您没有看到在输出中列出带有列值的插件 partition (在刚刚给出的每个示例中以粗体文本显示),那么您的 MySQL 版本没有构建分区支持。 ACTIVEStatus

Oracle 提供的 MySQL 5.6 社区二进制文件包括分区支持。有关 MySQL Enterprise Edition 二进制文件中提供的分区支持的信息,请参阅第 24 章,MySQL Enterprise Edition

如果您从源代码编译 MySQL 5.6,要启用分区,必须使用该 -DWITH_PARTITION_STORAGE_ENGINE 选项配置构建。有关详细信息,请参阅 第 2.9 节,“从源代码安装 MySQL”

my.cnf如果你的 MySQL 二进制文件是用分区支持构建的,那么不需要做任何进一步的事情来启用它(例如,你的文件 中不需要特殊条目)。

如果要禁用分区支持,可以使用该--skip-partition 选项启动 MySQL 服务器。当禁用分区支持时,您可以看到任何现有的分区表并删除它们(尽管不建议这样做),但您不能以其他方式操作它们或访问它们的数据。

有关分区和分区概念的介绍, 请参阅第 19.1 节,“MySQL 分区概述” 。

MySQL 支持多种类型的分区和子分区;参见第 19.2 节,“分区类型”第 19.2.6 节,“子分区”

第 19.3 节,“分区管理”,涵盖了在现有分区表中添加、删除和更改分区的方法。

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

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

对于 MySQL 5.6 中分区的已知问题,请参阅 第 19.6 节,“分区的限制和限制”

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

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

  • MySQL分区论坛

    这是为那些对 MySQL 分区技术感兴趣或尝试使用 MySQL 分区技术的人提供的官方论坛。它包含来自 MySQL 开发人员和其他人的公告和更新。它由分区开发和文档团队的成员监控。

  • Mikael Ronström 的博客

    MySQL 分区架构师和首席开发人员 Mikael Ronström 经常在这里发布有关他在 MySQL 分区和 NDB 集群方面的工作的文章。

  • 星球MySQL

    一个 MySQL 新闻站点,提供与 MySQL 相关的博客,任何使用我的 MySQL 的人都应该感兴趣。我们鼓励您在此处查看由使用 MySQL 分区的人员保存的博客链接,或者将您自己的博客添加到所涵盖的内容中。

MySQL 5.6 二进制文件可从 https://mysql.net.cn/downloads/mysql/5.6.html获得。但是,对于最新的分区错误修复和功能添加,您可以从我们的 GitHub 存储库中获取源代码。要启用分区,必须使用该 -DWITH_PARTITION_STORAGE_ENGINE 选项配置构建。有关构建 MySQL 的更多信息,请参阅 第 2.9 节,“从源代码安装 MySQL”。如果您在编译启用分区的 MySQL 5.6 版本时遇到问题,请查看MySQL 分区论坛,如果您没有找到已发布的问题的解决方案,请在那里寻求帮助。