【練習】刪除表中的分區


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM