代码之家  ›  专栏  ›  技术社区  ›  Uffo

我如何使用MySQL分区

  •  0
  • Uffo  · 技术社区  · 15 年前

    我有一张有数百万行的表,我想创建一些分区,但我真的不知道如何才能做到这一点。我的意思是,我想让以id 1->10000开始的数据位于分区1上,以id 10001->20000开始的数据位于分区2上,依此类推…?你能给我举个例子怎么做吗?

    我在网上搜了很多东西,读了很多文档,但我还是不明白该怎么做!

    最好的问候,

    2 回复  |  直到 15 年前
        1
  •  1
  •   Alexander Konstantinov    15 年前

    这是您可以开始使用分区的方式:

    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 “章。

    注意:MySQL中的分区从5.1版开始提供。

        2
  •  0
  •   Sjoerd    15 年前
    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