我如何使用MySQL分区执行此操作

时间:2010-06-01 10:57:35

标签: mysql partitioning

我有一个包含数百万行的表,我想创建一些部分,但我真的不知道我怎么能这样做。我的意思是我希望得到以ID 1开头的数据 - > 10000在分区1上,以及以ID 10001开头的数据 - > 20000在二分区;等等......?你能举例说明怎么做吗?

我在互联网上搜索了很多,我阅读了很多文档,但我仍然不明白它是如何完成的!

最诚挚的问候,

2 个答案:

答案 0 :(得分:1)

这是您开始使用分区的方法:

ALTER TABLE table_with_millions_of_rows
PARTITION BY RANGE (id) (
    PARTITION p0 VALUES LESS THAN (10000),
    PARTITION p1 VALUES LESS THAN (20000),
    PARTITION p2 VALUES LESS THAN MAXVALUE
)

有关如何管理(创建,删除,更改设置等)分区的更多信息,请参阅MySQL手册的“Partitioning”一章。

注意:从5.1版本开始,MySQL中的分区可用。

答案 1 :(得分:0)

CREATE TABLE part1 (...)
CREATE TABLE part2 (...)
INSERT INTO part1 SELECT * FROM original WHERE id => 0 AND id < 10000
INSERT INTO part2 SELECT * FROM original WHERE id => 10000 AND id < 20000