日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

普通表快速轉(zhuǎn)換為RANGE分區(qū)表

PolarDB支持在不做數(shù)據(jù)重分布的情況下,可以使用該語法快速的將普通表轉(zhuǎn)為RANGE分區(qū)表。本文將介紹PolarDB普通表快速轉(zhuǎn)RANGE分區(qū)表的操作步驟。

背景信息

PolarDB普通表快速轉(zhuǎn)RANGE分區(qū)表時,普通表的數(shù)據(jù)不經(jīng)校驗直接作為分區(qū)表的第一個分區(qū)的數(shù)據(jù),其他分區(qū)為空分區(qū)。PolarDB普通表快速轉(zhuǎn)RANGE分區(qū)表通常用于想把歷史數(shù)據(jù)放入第一個分區(qū),同時避免使用普通的ALTER PARTITION BY語法重寫一遍數(shù)據(jù),快速的將普通表轉(zhuǎn)為RANGE分區(qū)表的場景。

說明

如需了解更多關(guān)于普通表快速轉(zhuǎn)換為RANGE分區(qū)表的內(nèi)容,請搜索釘釘群號加群進行咨詢。釘釘群號:24490017825。

前提條件

集群版本需為PolarDB MySQL版8.0.2版本且Revision version為8.0.2.2.10或以上。您可以通過查詢版本號確認集群版本。

使用限制

若單表通過INSTANT ADD COLUMN語句添加過字段,則不能將其轉(zhuǎn)為RANGE分區(qū)表。

使用說明

普通表快速轉(zhuǎn)RANGE分區(qū)表

語法

ALTER TABLE語句中添加WITHOUT VALIDATION關(guān)鍵字。

ALTER TABLE table_name
PARTITION BY RANGE {(expr) | COLUMNS(column_list)}
(partition_definition [, partition_definition] ...)
WITHOUT VALIDATION;

其中,partition_definition如下:

PARTITION partition_name
       VALUES LESS THAN {(value | value_list) | MAXVALUE}

參數(shù)說明

參數(shù)

參數(shù)說明

table_name

表名稱。

column_list

LIST COLUMNS類型使用,分區(qū)字段列表,不支持表達式。

RANGE(expr)

RANGE分區(qū)字段表達式。

partition_name

分區(qū)名稱。

value_list

字段的邊界值。

MAXVALUE

最大值。

示例

將普通表t1轉(zhuǎn)為RANGE分區(qū)表。

CREATE TABLE t1 (
`a` int ,
`b` int ,
Primary Key(a, b));

insert into t1 values(1,1),(2,1),(3,1),(4,1),(111,111),(3333,333);

alter table t1 partition by range(a) (
  partition p0 values less than (100),
  partition p1 values less than (200)
) WITHOUT VALIDATION;

t1表的所有數(shù)據(jù)會不經(jīng)校驗的全部轉(zhuǎn)到partition p0,如果您確認普通表的數(shù)據(jù)全部符合p0定義的邊界,可以使用該語法快速的進行普通表快速轉(zhuǎn)RANGE分區(qū)表。

說明

請務必保證普通表中的數(shù)據(jù)全部符合分區(qū)表第一個分區(qū)定義的邊界,否則轉(zhuǎn)成分區(qū)表之后,不符合分區(qū)規(guī)則的數(shù)據(jù)可能會查詢不到。

組合使用語法

普通表快速轉(zhuǎn)RANGE分區(qū)表WITHOUT VALIDATION可以搭配INTERVAL分區(qū)表(自動創(chuàng)建相同間隔的RANGE分區(qū))組合使用。

示例

CREATE TABLE t1(
 ID int,
 DATE DATE,
 PRIMARY KEY (ID,DATE)
);
ALTER TABLE t1 
partition by RANGE COLUMNS(date) INTERVAL(DAY, 1) (
  PARTITION p0 VALUES LESS THAN ('2023-01-31')
) without validation;

性能對比

PolarDB普通表快速轉(zhuǎn)RANGE分區(qū)表相對于原生MySQL普通表轉(zhuǎn)分區(qū)表功能,只改變表的元數(shù)據(jù),不涉及到表數(shù)據(jù)的重寫,所以速度非常快,耗時大約不到0.1秒。而原生MySQL普通表轉(zhuǎn)分區(qū)表功能則需要校驗并重寫數(shù)據(jù),耗時較長,且隨數(shù)據(jù)量的增加耗時會變長。

表大小

原生MySQL普通表轉(zhuǎn)分區(qū)表

PolarDB普通表快速轉(zhuǎn)RANGE分區(qū)表

1 GB (6001215 rows)

52.24秒

0.10秒

10 GB (59986052 rows)

8分鐘45.82秒

0.07秒