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

散列分区(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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值