全部產品
Search
文件中心

PolarDB:分區函數

更新時間:Jul 06, 2024

本文介紹了AUTO模式資料庫支援的分區函數。

名詞解析

  • 分區鍵:分區表中用於進行水平切分的一個列或多個列。

  • 分區列:水平切分後,參與分區路由及計算的列,它通常是分區鍵的一部分,一個分區鍵可以含有一個或多個分區列。

  • 向量分區鍵:由一個或多個分區列組成的分區鍵,例如Partition by Hash(c1,c2,c3)

  • 單列分區鍵:只含一個分區列的分區鍵,例如Partition by Hash(c1)

  • 分區函數:將分區列作為一個函數的輸入參數,並將該函數的輸出結果作為原始值參與路由計算,該函數被稱為分區函數。例如Partition by Hash(To_Days(c1))

  • 分區函數單調性:單調性描述了隨著自變數x(函數的輸入)增加或減少時函數的輸出值func(x)變化趨勢。單調性又可細分以下3種,但其中的具有嚴格單調性與非嚴格單調性的分區函數才能支援範圍查詢的分區裁剪

    • 嚴格單調性:對於x>y,func(x)>func(y),反之亦然;

    • 非嚴格單調性:對於x>y,func(x)>=func(y),反之亦然;

    • 沒有單調性:對於x>y,不一定會出現func(x)>=func(y)。

使用限制

下表列出了PolarDB-X支援的分區函數、支援的版本、函數單調性以及分區函數支援的資料類型。

分區函數

描述

支援版本

分區函數單調性

分區列的資料類型支援情況

整數類型

時間類型

字串類型

YEAR

返回輸入值的年份,詳情請參見MySQL YEAR

5.4.13及以上。

非嚴格單調

MONTH

返回輸入值的月份,詳情請參見MySQL MONTH

5.4.13及以上。

沒有單調性

TO_DAYS

返回自公元元年(0000-01-01)至輸入日期之間的天數,詳情請參見MySQL TO_DAYS

5.4.13及以上。

非嚴格單調

TO_MONTHS

返回公元元年(0000-01-01)至輸入日期之間的月數。該函數為PolarDB-X特有函數。

5.4.16-16717637版本及以上。

非嚴格單調

TO_WEEKS

返回公元元年(0000-01-01)至輸入日期之間的星期數。該函數為PolarDB-X特有函數。

5.4.16-16717637版本及以上。

非嚴格單調

TO_SECONDS

返回公元元年0時刻至輸入時間之間的秒數,詳情請參見MySQL TO_SECONDS

5.4.13及以上。

非嚴格單調

UNIX_TIMESTAMP

返回'1970-01-01 00:00:00' UTC至輸入時間之間的秒數,詳情請參見MySQL UNIX_TIMESTAMP

5.4.13及以上。

非嚴格單調

DAYOFWEEK

返回輸入日期的星期編號,(1 = Sunday, 2 = Monday, …, 7 = Saturday),詳情請參見MySQL DAYOFWEEK

5.4.16-16717637版本及以上。

沒有單調性

DAYOFMONTH

返回輸入日期是當月的第幾天(取值範圍為1至31),詳情請參見MySQL DAYOFMONTH

5.4.16-16717637版本及以上。

沒有單調性

DAYOFYEAR

返回輸入日期是當年的第幾天(取值範圍為1至366),詳情請參見MySQL DAYOFYEAR

5.4.16-16717637版本及以上。

沒有單調性

SUBSTR/SUBSTRING

返回輸入字串的一個子串,詳情請參見MySQL SUBSTR(註:SUBSTR/SUBSTRING)。

5.4.16-16717637版本及以上。

沒有單調性

RIGHT

輸入一個字串和想截取的長度n,返回該字串最右端長度為n的子串,詳情請參見MySQL RIGHT

5.4.18-17034692版本及以上。

沒有單調性

LEFT

輸入一個字串和想截取的長度n,返回該字串最左端長度為n的子串,詳情請參見MySQL LEFT

5.4.18-17034692版本及以上。

沒有單調性

整數類型:BIGINT/BIGINT UNSINGEDINT/INT/INT UNSINGED/MEDIUMINT/MEDIUMINT UNSINGED/SMALLINT/SMALLINT UNSINGED/TINYINT/TINYINT UNSINGED

時間類型:DATETIME/DATE/TIMESTAMP

字串類型:CHAR/VARCHR

下表列出了PolarDB-X的各種分區函數允許在哪些分區策略中使用。

分區函數

KEY分區

HASH分區

RANGE分區

RANGE COLUMNS分區

LIST分區

LIST COLUMNS分區

COHASH分區

單列分區鍵

向量分區鍵

單列分區鍵

向量分區鍵

YEAR

TO_DAYS

TO_MONTHS

TO_WEEKS

TO_SECOND

UNIX_TIMESTAMP

MONTH

DAYOFWEEK

DAYOFMONTH

DAYOFYEAR

SUBSTR/SUBSTRING

RIGHT

LEFT