2013-10-31 27 views
2

我有一个超过允许分区数(1024)的MySql表。MySQL表可以有不同类型的分区吗?

我用分区的值(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)?

Can 1 table可以同时有Range分区和List分区吗?

谢谢!!!

回答

1

不,您不能同时使用LIST和RANGE对一个表进行分区。

你可以有SUBPARTITIONS,但只有当主分区是由LIST或RANGE(选择一个),子分区是由HASH或KEY(选择一个)。

您可以实现类似LIST和RANGE混合的唯一方式是如果您使用SPIDER存储引擎,以便每个分区位于MySQL的另一个实例上,其中表可以通过任何方式进一步分区。但恕我直言,SPIDER存储引擎仍然是实验性的,它会给网络请求带来很多开销。

+0

感谢您的回答! –

相关问题