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

本文介紹了AUTO模式數據庫中的HASH分區策略。

語法

PolarDB-X中,把數據按照一致性哈希算法打散到不同的分區上,支持使用分區函數的表達式對分區列的值進行處理的分區策略叫做HASH分區。

PolarDB-X的HASH分區的路由算法與社區MySQL的HASH分區的路由算法并不相同。

CREATE TABLE ... 
PARTITION BY HASH(partition_expr) 
PARTITIONS number;

partition_expr:
    partition_column_list	
  | partition_func(partition_column)

partition_column_list:
  partition_column_list[, partition_column, partition_column, ...]
  
# 分區函數定義
partition_func:
    YEAR
  | TO_DAYS
  | TO_MONTHS
  | TO_WEEKS
  | TO_SECOND
  | UNIX_TIMESTAMP
  | MONTH
  | DAYOFWEEK
  | DAYOFMONTH
  | DAYOFYEAR
  | SUBSTR
  | SUBSTRING
  | RIGHT
  | LEFT
說明

HASH分區策略與KEY分區策略的區別請參見Key分區策略與Hash分區策略對比

限制

  • HASH分區的單列分區鍵支持使用分區函數,但不同分區函數對分區列的數據類型有不同要求。

  • HASH分區的向量分區鍵不允許使用分區函數,不支持熱點分列。

  • 分區列使用分區函數時,不允許嵌套多層的分區函數。

  • 默認最大分區數目不允許超過8192。

  • 默認最大分區列數目不允許超過5個。

  • 使用TIMESTAMP等時區敏感的數據類型作為分區列時,該分區列必須配套地使用UNIX_TIMESTAMP分區函數。

示例

使用分區函數

使用單列分區鍵datetime并通過分區函數to_days將datetime時間列轉換為日期天數,再進行哈希分區,同時指定分區數目為8。

CREATE TABLE tb_h_fn(
 id bigint not null auto_increment, 
 bid int, 
 name varchar(30),
 birthday datetime not null,
 primary key(id)
) 
PARTITION BY HASH(TO_DAYS(birthday)) 
PARTITIONS 8;

使用單列分區鍵

使用單列分區鍵id進行哈希分區,并指定分區數目為8。

CREATE TABLE tb_h(
 id bigint not null auto_increment, 
 bid int, 
 name varchar(30),
 birthday datetime not null,
 primary key(id)
) 
PARTITION BY HASH(id) 
PARTITIONS 8;

使用向量分區鍵

使用向量分區鍵 (id,bid) 進行哈希分區,并指定分區數目為8。

重要

id與bid同時參與哈希值計算,即等值查詢必須同時帶上id與bid等值條件,才能命中分區裁剪。

CREATE TABLE tb_h2(
 id bigint not null auto_increment, 
 bid int, 
 name varchar(30),
 birthday datetime not null,
 primary key(id)
) 
PARTITION BY HASH(id,bid) 
PARTITIONS 8;

相關限制

數據類型限制

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

  • 時間類型:DATETIME/DATE/TIMESTAMP

  • 字符串類型:CHAR/VARCHR

數據均勻性

  • Key分區與HASH分區使用內置的一致性HASH散列算法采用是經過業界廣泛測試的、沖突概率低且性能良好的散列算法MurmurHash3,但是該算法無法保證在任何情況下各分片的數據分布的均衡性,尤其是分區鍵不同取值數目比較少的情況;

  • 基于MurmurHash3的特性,一般情況下,當分區鍵不同取值的數目N大于3000時,Key分區與HASH分區的數據分布才會相對均衡,且N的值越大,數據分布也將越均衡。