Mariadb(MySql)表横向RANGE分区

1.新建分区

ALTER TABLE table_name
PARTITION BY RANGE (column_name) (
	PARTITION p_name_0001 VALUES LESS THAN (column_value_range_1),
	PARTITION p_name_0002 VALUES LESS THAN (column_value_range_2),
	PARTITION p_name_0003 VALUES LESS THAN (column_value_range_3),
	PARTITION p_over VALUES LESS THAN MAXVALUE
);

2.向已有分区添加一个位于p_over之前的分区:

ALTER TABLE table_name 
REORGANIZE PARTITION p_over INTO (
	PARTITION p_name_0004 VALUES LESS THAN (column_value_range_4),
	PARTITION p_over VALUES LESS THAN MAXVALUE
);

3.删除一个分区:

ALTER TABLE table_name DROP PARTITION p_name;

4.把已有分区细分化重新分区:

ALTER TABLE table_name 
REORGANIZE PARTITION p_name_0001, p_name_0002, p_name_0003, p_name_0004,p_over INTO (
	PARTITION p_name_0001 VALUES LESS THAN (column_value_range_1),
	PARTITION p_name_0002 VALUES LESS THAN (column_value_range_2),
	PARTITION p_name_0003 VALUES LESS THAN (column_value_range_3),
	PARTITION p_name_0004 VALUES LESS THAN (column_value_range_4),
	PARTITION p_name_0005 VALUES LESS THAN (column_value_range_5),
	PARTITION p_name_0006 VALUES LESS THAN (column_value_range_6),
	PARTITION p_name_0007 VALUES LESS THAN (column_value_range_7),
	PARTITION p_name_0008 VALUES LESS THAN (column_value_range_8),
	PARTITION p_over VALUES LESS THAN MAXVALUE
);

5.删除所有分区:

ALTER TABLE table_name REMOVE PARTITIONING;

6.指定分区操作:

SELECT
	column_list
FROM
	table_name
PARTITION (p_name_0001, p_name_0002)
WHERE
	column_name = 'value';

除非标明,否则皆为<IT民工の在日生活 - 神户印象>原创之作,转载必须以明文链接标明出处。
本文链接:https://www.lifeinjp.net/share/447

发表评论