一、分區概述
1、什麼是分區?
MySQL的Table分區是一種在表的基礎上進行分割數據體系的處理方式。分區本質上是一種將大表分解成小表,可以更好地管理、維護、查詢和分析數據的方式。分區的操作可以減輕鎖的負荷,提高查詢效率,及實現數據靈活管理的目的。MySQL支持的分區方式有:RANGE分區、LIST分區、HASH分區、KEY分區等。
2、為什麼要使用分區?
隨着數據量的逐漸增加,為了提高數據的查詢效率,我們可能會採用分區的方式對錶進行劃分。分區可以大大加快大表中的數據操作速度,並且將表分成若干個子集,可以更加方便維護和管理數據,在後期數據量增加時,方便添加和刪除分區,非常方便。
二、刪除分區
1、刪除未被使用的分區
ALTER TABLE table_name COALESCE PARTITION partition_number
該語句將會合併表的一個已被使用的分區到相鄰的空分區中,而空分區需要由mysql自動創建。例如,如果你有一個11到20號的分區,其中的兩個分區:15、18沒有數據,你可以運行該語句將這些空分區合併,並且系統會自動將15和18的空分區刪除。
2、刪除已被使用的分區
ALTER TABLE table_name DROP PARTITION partition_name
該語句將會刪除一個已經存在數據的分區,其中partition_name為要刪除的分區名稱。如果你要刪除的分區里還有數據,這個語句是會拋出異常的。
3、刪除多個分區
ALTER TABLE table_name DROP PARTITION partition_name1, partition_name2, partition_name3…
該語句將會刪除表中多個分區,只需要在語句中用」,」隔開分區名稱即可。
4、刪除某一範圍內的分區
ALTER TABLE table_name DROP PARTITION partition_name1, partition_name2… UNTIL partition_nameN
該語句可以刪除由 partition_name1 開始,到 partition_nameN 的所有分區。例如,你想刪除1到10分區裏面的數據,可以用」UNTIL」指定範圍。
三、使用例子
以下給出一個分區表的例子,可以幫助我們更好的理解分區刪除操作。
CREATE TABLE t1 (
id INT,
name VARCHAR(20),
age INT,
employer VARCHAR(20)
) ENGINE=InnoDB
PARTITION BY RANGE(id) (
PARTITION p0 VALUES LESS THAN (20),
PARTITION p1 VALUES LESS THAN (40),
PARTITION p2 VALUES LESS THAN (60),
PARTITION p3 VALUES LESS THAN (80),
PARTITION p4 VALUES LESS THAN MAXVALUE
);
-- 刪除某個分區
ALTER TABLE t1 DROP PARTITION p3;
-- 刪除某個範圍內的分區
ALTER TABLE t1 DROP PARTITION p1, p2 UNTIL p4;
-- 合併空的分區
ALTER TABLE t1 COALESCE PARTITION p0;
四、總結
以上就是關於mysql刪除分區的完整操作指南,希望對你有所幫助。
原創文章,作者:QKSBI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/351571.html