相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.4 mb
PDF (A4)- 36.4 mb
PDF (RPM)- 35.7 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.5 mb
HTML下载(RPM)- 8.2 mb
手册页(TGZ)- 235.4 kb
手册页(Zip)- 347.0 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

第二十二章分区

本章讨论MySQL的实现用户自定义分区

请注意

从MySQL 5.7.17开始,MySQL服务器中的通用分区处理程序已弃用,并在MySQL 8.0中被移除,因为用于给定表的存储引擎需要提供自己的(本地的)分区处理程序。目前,只有InnoDB而且NDB存储引擎可以做到这一点。

使用带有非本机分区的表会导致ER_WARN_DEPRECATED_SYNTAX警告。在MySQL 5.7.17到5.7.20中,服务器在启动时自动执行检查,以识别使用非本地分区的表;对于发现的任何错误,服务器将一条消息写入其错误日志。要禁用此检查,请使用——disable-partition-engine-check选择。在MySQL 5.7.21及以后版本中,此检查为执行;在这些版本中,必须使用——disable-partition-engine-check = false,如果你希望服务器使用通用分区处理程序检查表(Bug #85830, Bug #25846957)。

为了准备迁移到MySQL 8.0,任何具有非本机分区的表都应该被更改为使用提供本机分区的引擎,或者被设置为非分区。例如,将表更改为InnoDB,执行下面的语句:

ALTER TABLEtable_name引擎= innodb;

选项的输出可以确定MySQL服务器是否支持分区显示插件声明,像这样:

mysql>显示插件;+------------+----------+----------------+---------+---------+ | 名称|状态| | |库许可类型  | +------------+----------+----------------+---------+---------+ | binlog | |活跃存储引擎零| GPL | | | | |活跃分区存储引擎零| | GPL | |归档| |活跃存储引擎零| | GPL | |黑洞| |活跃存储引擎零| | GPL | | CSV | |活跃存储引擎零| | GPL | |联合| |禁用存储引擎零| | GPL | | | |活跃记忆STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | GPL | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | ndbcluster | DISABLED | STORAGE ENGINE | NULL | GPL | +------------+----------+----------------+---------+---------+ 11 rows in set (0.00 sec)

您也可以检查INFORMATION_SCHEMA。插件表,查询与此类似:

mysql> SELECT -> PLUGIN_NAME作为名称,-> PLUGIN_VERSION作为版本,-> PLUGIN_STATUS作为状态-> FROM INFORMATION_SCHEMA。插件-> where plugin_type ='存储引擎';+--------------------+---------+--------+ | 名字| |版本状态  | +--------------------+---------+--------+ | binlog | 1.0 |活动| | CSV | 1.0 |活动| |记忆活动| | 1.0 | | MRG_MYISAM | 1.0 |活动| | MyISAM | 1.0 |活动| | PERFORMANCE_SCHEMA | 0.1 |活动| |黑洞活动| | 1.0 | |归档活跃| 3.0 | | | InnoDB | 5.7 |活动| |分区| 1.0 |活跃  | +--------------------+---------+--------+ 10行集(0.00秒)

在这两种情况下,如果您没有看到分区与值一起列出的插件活跃的状态列(在刚才给出的每个示例中以粗体显示),那么您的MySQL版本不支持分区。

Oracle提供的MySQL 5.7 Community二进制文件包含分区支持。有关MySQL企业版二进制文件中提供的分区支持的信息,请参见28章,MySQL企业版

如果您从源代码编译MySQL 5.7,要启用分区,构建必须配置-DWITH_PARTITION_STORAGE_ENGINE选择。有关更多信息,请参见2.9节,“从源代码安装MySQL”

如果您的MySQL二进制文件构建时带有分区支持,则不需要做任何进一步的操作来启用它(例如,在您的目录中不需要特殊的条目)my.cnf文件)。

如果您想禁用分区支持,可以使用——skip-partition选择。当分区支持被禁用时,您可以看到任何现有的分区表并删除它们(尽管不建议这样做),但是您不能操作它们或访问它们的数据。

看到第22.1节,“MySQL分区概述”,了解分区和分区概念的介绍。

MySQL支持多种类型的分区和子分区;看到第22.2节“分区类型”,第22.2.6节,“分区”

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

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

分区表中的INFORMATION_SCHEMA数据库提供关于分区和已分区表的信息。看到Section 24.3.16,“INFORMATION_SCHEMA PARTITIONS Table”,以获取更多资料;有关针对此表的一些查询示例,请参见章节22.2.7,“MySQL分区如何处理NULL”

有关MySQL 5.7中分区的已知问题,请参阅第22.6节“分区的限制和限制”

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

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

  • MySQL分区论坛

    这是对MySQL分区技术感兴趣或尝试MySQL分区技术的人的官方讨论论坛。它以MySQL开发人员和其他人的公告和更新为特色。它由分区开发和文档团队的成员进行监控。10bet官方网站

  • 迈克尔Ronström的博客

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

  • PlanetMySQL

    一个MySQL新闻网站,提供MySQL相关的博客,使用我的MySQL的人应该会感兴趣。我们鼓励您在这里查看与MySQL Partitioning相关的博客的链接,或者将您自己的博客添加到这些博客中。

MySQL 5.7二进制文件可以从https://dev.10bet靠谱mys10bet手机中文版ql.com/downloads/mysql/5.7.html.但是,对于最新的分区错误修复和功能添加,您可以从我们的GitHub存储库获得源代码。要启用分区,构建必须使用-DWITH_PARTITION_STORAGE_ENGINE选择。有关构建MySQL的更多信息,请参见2.9节,“从源代码安装MySQL”.如果在编译支持分区的MySQL 5.7版本时遇到问题,请检查MySQL分区论坛如果你没有找到解决你的问题的方法,请在那里寻求帮助。