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

KEY分區與HASH分區類似,也是將數據按照PolarDB-X內置的一致性哈希算法進行分區。因此,PolarDB-X的KEY分區的路由算法與社區MySQL的KEY分區的路由算法并不相同。

KEY分區與HASH分區的區別在于:

  • KEY分區可以沒有分區字段,沒有分區字段時,默認將主鍵字段作為分區鍵。如果沒有主鍵字段時,則按照唯一鍵進行分區;

  • KEY分區支持多列分區字段(即向量分區鍵),當KEY分區使用了多分區字段組成的向量分區鍵進行定義時,默認第1個分區列真正起路由作用;

  • KEY分區支持INT類型、字符類型、DATE類型、DATETIME類型。

語法

CREATE TABLE ... 
PARTITION BY KEY(partition_column_list) 
PARTITIONS number;

partition_column_list:
  partition_column_list[, partition_column, partition_column, ...]
說明

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

限制

  • Key分區不支持使用分區函數;

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

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

示例

使用單列分區鍵

使用單列分區鍵id按Key分區,并指定分區數目為8。

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

使用向量分區鍵

使用向量分區鍵bid、id按Key分區,并指定分區數目為8。

重要

默認第1個列參與哈希值計算,查詢帶上前綴分區列等值條件即可命中分區裁剪,后邊的未實際路由生效的分區列,如id,將被用于熱點分裂。

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

相關限制

數據類型限制

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

  • 時間類型:DATETIME/DATE/TIMESTAMP

  • 字符串類型:CHAR/VARCHR/BINARY

  • 定點類型:DECIMAL(小數部分的位數要求必須是0)

數據均勻性

  • Key分區與Hash分區內置的一致性Hash散列算法是經過業界廣泛測試的、沖突概率低且性能良好的散列算法MurmurHash3

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