2011-05-02 22:15 MySQL分区表例子——Hash分区

来源:互联网 发布:java手游开发 编辑:程序博客网 时间:2024/06/14 01:05

散列分区(Hash分区)

初期分区定义

mysql> CREATE TABLE sale_item (

    ->   id INT NOT NULL,

    ->   item_name VARCHAR(10)

    -> )

    -> PARTITION BY HASH(id)

    -> PARTITIONS 4;

Query OK, 0 rows affected (0.14 sec)

核对结果

mysql> SHOW CREATE TABLE sale_item\G

*************************** 1. row ***************************

       Table: sale_item

Create Table: CREATE TABLE `sale_item` (

  `id` int(11) NOT NULL,

  `item_name` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

/*!50100 PARTITION BY HASH (id)

PARTITIONS 4 */

增加分区

要增加分区的数量从4到14 (增加10个)

mysql> ALTER TABLE sale_item ADD PARTITION PARTITIONS 10;

Query OK, 0 rows affected (0.92 sec)

Records: 0  Duplicates: 0  Warnings: 0

核对结果

mysql> SHOW CREATE TABLE sale_item\G

*************************** 1. row ***************************

       Table: sale_item

Create Table: CREATE TABLE `sale_item` (

  `id` int(11) NOT NULL,

  `item_name` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

/*!50100 PARTITION BY HASH (id)

PARTITIONS 14 */

1 row in set (0.02 sec)

减少分区

要减少分区的数量从14到8(减少6个)

mysql> ALTER TABLE sale_item COALESCE PARTITION 6;

Query OK, 0 rows affected (1.33 sec)

Records: 0  Duplicates: 0  Warnings: 0

核对结果

mysql> SHOW CREATE TABLE sale_item\G

*************************** 1. row ***************************

       Table: sale_item

Create Table: CREATE TABLE `sale_item` (

  `id` int(11) NOT NULL,

  `item_name` varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

/*!50100 PARTITION BY HASH (id)

PARTITIONS 8 */

1 row in set (0.00 sec)

原创粉丝点击