【练习】删除表中的分区

1.从city_part表中删除第一个分区(p0)。

mysql> alter table city_part drop partition p0;
ERROR 1512 (HY000): DROP PARTITION can only be used on RANGE/LIST partitions


-----此操作不起作用,原因:这是key分区表

 

2.将当前city_part表恢复为第一个range分区的配置,在终端窗口输入以下内容,得到显示结果如下。

mysql> alter table city_part partition by range (id)( 
    -> partition p0 values less than (1000),
    -> partition p1 values less than (2000),
    -> partition p2 values less than (3000),
    -> partition p3 values less than maxvalue
    -> );
Query OK, 4080 rows affected (1.21 sec)
Records: 4080  Duplicates: 0  Warnings: 0

3.验证没个新分区的文件大小,以root身份登录终端窗口并在其中窗口输入以下内容,得到如下结果。

[root@enmo world]# ls -l
total 2296
-rw-rw----. 1 mysql mysql   8710 Nov  2 19:10 city.frm
-rw-rw----. 1 mysql mysql 589824 Nov  3 04:58 city.ibd
-rw-rw----. 1 mysql mysql   8710 Nov  4 04:13 city_part.frm
-rw-rw----. 1 mysql mysql     32 Nov  4 04:13 city_part.par
-rw-rw----. 1 mysql mysql 327680 Nov  4 04:13 city_part#P#p0.ibd
-rw-rw----. 1 mysql mysql 311296 Nov  4 04:13 city_part#P#p1.ibd
-rw-rw----. 1 mysql mysql 360448 Nov  4 04:13 city_part#P#p2.ibd
-rw-rw----. 1 mysql mysql 311296 Nov  4 04:13 city_part#P#p3.ibd
-rw-rw----. 1 mysql mysql   9172 Nov  2 19:10 country.frm
-rw-rw----. 1 mysql mysql 163840 Nov  2 19:10 country.ibd
-rw-rw----. 1 mysql mysql   8702 Nov  2 19:10 countrylanguage.frm
-rw-rw----. 1 mysql mysql 229376 Nov  2 19:10 countrylanguage.ibd
-rw-rw----. 1 mysql mysql     65 Nov  2 19:10 db.opt

4.尝试再次从city_part表中删除第一个分区(p0).

mysql> alter table city_part drop partition p0;
Query OK, 0 rows affected (0.22 sec)
Records: 0  Duplicates: 0  Warnings: 0

----此操作起作用,原因是range分区表允许使用drop partition。

5.通过使用explain partitions 显示现在用于查询所有表数据的分区来确认对city_part表分区进行的修改,在终端窗口输入以下内容,得到如下显示结果。

mysql> explain partitions select * from city_part\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: city_part
   partitions: p1,p2,p3
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 3081
        Extra: NULL
1 row in set (0.00 sec)

6.检查mysql数据目录。

[root@enmo world]# ls -l
total 1976
-rw-rw----. 1 mysql mysql   8710 Nov  2 19:10 city.frm
-rw-rw----. 1 mysql mysql 589824 Nov  3 04:58 city.ibd
-rw-rw----. 1 mysql mysql   8710 Nov  4 04:16 city_part.frm
-rw-rw----. 1 mysql mysql     32 Nov  4 04:16 city_part.par
-rw-rw----. 1 mysql mysql 311296 Nov  4 04:13 city_part#P#p1.ibd
-rw-rw----. 1 mysql mysql 360448 Nov  4 04:13 city_part#P#p2.ibd
-rw-rw----. 1 mysql mysql 311296 Nov  4 04:13 city_part#P#p3.ibd
-rw-rw----. 1 mysql mysql   9172 Nov  2 19:10 country.frm
-rw-rw----. 1 mysql mysql 163840 Nov  2 19:10 country.ibd
-rw-rw----. 1 mysql mysql   8702 Nov  2 19:10 countrylanguage.frm
-rw-rw----. 1 mysql mysql 229376 Nov  2 19:10 countrylanguage.ibd
-rw-rw----. 1 mysql mysql     65 Nov  2 19:10 db.opt

7.删除city_part表的分区并将其恢复为其原始的非分区状态。

mysql> alter table city_part remove partitioning;
Query OK, 3081 rows affected (0.24 sec)
Records: 3081  Duplicates: 0  Warnings: 0

8.现在您已经再次修改了city_part,再次显示分区状态。

mysql> show table status like 'city_part'\G
*************************** 1. row ***************************
           Name: city_part
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 3081
 Avg_row_length: 101
    Data_length: 311296
Max_data_length: 0
   Index_length: 98304
      Data_free: 0
 Auto_increment: 4081
    Create_time: 2016-11-04 04:23:32
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)

9.通过使用explain partitions,验证city_part 表分区现在是否已不存在,在终端窗口输入以下内容。

mysql> explain partitions select * from city_part\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: city_part
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 3081
        Extra: NULL
1 row in set (0.00 sec)

 

转载于:https://www.cnblogs.com/tomatoes-/p/6028089.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值