zoukankan      html  css  js  c++  java
  • 【练习】删除表中的分区

    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_partG
    *************************** 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_partG
    *************************** 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)
  • 相关阅读:
    VUE的生命周期
    ID生成算法(二)
    ID生成算法(一)——雪花算法
    HTTP状态码和支持的方法
    水平居中/垂直居中/水平垂直居中总结
    判断数组类型的4种方法
    WebSocket浅谈
    vue中使用定时器时this指向
    银行转账业务梳理
    支付那些事儿
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/6028089.html
Copyright © 2011-2022 走看看