我有一个包含数百万行的表,我想创建一些部分,但我真的不知道我怎么能这样做。我的意思是我希望得到以ID 1开头的数据 - > 10000在分区1上,以及以ID 10001开头的数据 - > 20000在二分区;等等......?你能举例说明怎么做吗?
我在互联网上搜索了很多,我阅读了很多文档,但我仍然不明白它是如何完成的!
最诚挚的问候,
答案 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