我的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)?
1个表是否可以同时按范围分区列表和分区?
感谢!!!
答案 0 :(得分:1)
不,你不能让一个表被LIST和RANGE分区。
您可以拥有SUBPARTITIONS但仅当主要分区是LIST或RANGE(选择一个)时,子分区是HASH或KEY(选择一个)。
如果您使用SPIDER存储引擎,那么实现LIST和RANGE混合的唯一方法就是使每个分区都位于MySQL的另一个实例上,其中表格可以通过您想要的任何方式进一步分区。但恕我直言,SPIDER存储引擎仍处于试验阶段,它会给网络请求带来大量开销。