散列分区(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)
转:http://hi.baidu.com/wangzhiqing999/blog/item/74968e134c4b42174b90a734.html