【问题标题】:Can MySQL table have partitions of a different type?MySQL 表可以有不同类型的分区吗?
【发布时间】:2013-11-12 00:12:11
【问题描述】:

我的 MySql 表超过了允许的分区数 (1024)。

我使用按值分区 (LIST):

ALTER TABLE phplist_usermessage ADD PARTITION (PARTITION p14 VALUES IN (14))

所以结果:

EXPLAIN PARTITIONS SELECT * FROM phplist_usermessage;   

看起来像:

p14,p160,p161,p177,p183,p184,p185,p186,p191,p193,p204, ...... , p1287

是否有可能(通过运行 ALTER TABLE ... REORGANIZE )按 RANGE 创建 1 个分区,该分区将保存值范围(例如从 14 到 1000),同时按值 p1001,p1002,...(对于值 > 1000)?

一张表可以同时有List分区和Range分区吗?

谢谢!!!

【问题讨论】:

    标签: mysql partitioning


    【解决方案1】:

    不,您不能让一张表同时按 LIST 和 RANGE 分区。

    您可以有 SUBPARTITIONS,但前提是主分区是 LIST 或 RANGE(选择一个),而子分区是 HASH 或 KEY(选择一个)。

    实现 LIST 和 RANGE 混合的唯一方法是使用 SPIDER 存储引擎,以便每个分区位于 MySQL 的另一个实例上,在该实例中,可以通过任何您想要的方式对表进行进一步分区。但恕我直言,SPIDER 存储引擎仍处于试验阶段,它会为网络请求带来大量开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多