mysql(5.6)分区(二)与存储引擎相关的分区限制

以下限制适用于使用具有用户定义的表分区的存储引擎。

MERGE存储引擎。  用户定义的分区和MERGE 存储引擎不兼容。使用MERGE存储引擎的表 不能分区。分区表无法合并。

联合存储引擎。 FEDERATED不支持 分区表; 不可能创建分区 FEDERATED表。

CSV存储引擎。 CSV不支持 使用存储引擎的分区表不可能创建分区CSV表。

InnoDB存储引擎。  InnoDB外键和MySQL分区不兼容。分区 InnoDB表不能有外键引用,也不能有外键引用的列。InnoDB具有或由外键引用的表不能分区。

InnoDB不支持使用多个磁盘进行子分区。(目前仅由...支持 MyISAM

另外, ALTER TABLE ... OPTIMIZE PARTITION使用InnoDB 存储引擎的分区表无法正常工作使用ALTER TABLE ... REBUILD PARTITIONALTER TABLE ... ANALYZE PARTITION不是这样的表。有关更多信息,请参见 第13.1.7.1节“ALTER TABLE分区操作”

用户定义分区和NDB存储引擎(NDB Cluster)。  分区KEY(包括 LINEAR KEY)是NDB存储引擎支持的唯一分区类型 在正常情况下,MySQL NDB Cluster 7.4中不可能使用除[ LINEAR之外的任何分区类型创建NDB Cluster表KEY,并尝试执行此操作失败并显示错误。

异常(不用于生产):可以通过将newNDB Cluster SQL节点上系统变量设置为来覆盖此限制 ON如果您选择这样做,您应该知道使用分区类型的表[LINEAR] KEY在生产中不受支持。在这种情况下,您可以创建和使用除了KEY 或之外的分区类型的表LINEAR KEY,但是您完全可以自行承担风险

可以为NDB定义的最大分区数 取决于群集中的数据节点和节点组数,正在使用的NDB群集软件的版本等因素。有关详细信息,请参阅 NDB和用户定义的分区

NDB表中 每个分区可以存储的最大固定大小数据量为16 GB。

CREATE TABLE以及 ALTER TABLE导致用户分区NDB表不符合以下两个要求中的任一个或两者的语句 是不允许的,并且会失败并显示错误:

  1. 表必须有一个显式的主键。

  2. 表的分区表达式中列出的所有列必须是主键的一部分。

例外。  如果NDB使用空列表(即使用PARTITION BY KEY()PARTITION BY LINEAR KEY()创建用户分区表 ,则不需要显式主键。

升级分区表。  执行升级时,由其划分 KEY并使用任何存储引擎的表NDB必须被转储和重新加载。

所有分区的存储引擎相同。  分区表的所有分区必须使用相同的存储引擎,并且它必须与表整体使用的存储引擎相同。另外,如果没有在表级别上指定引擎,则在创建或更改分区表时必须执行以下任一操作:

  • 不要指定任何引擎 的任何分区或子分区

  • 指定所有分区或子分区 的引擎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值