O PolarDB-X oferece suporte aos tipos de particionamento HASH, KEY, RANGE, LIST e CO_HASH para controlar a distribuição de dados entre as partições.
Tipos de particionamento
O PolarDB-X é compatível com os seguintes tipos de particionamento:
-
Particionamento HASH
HASH (sintaxe compatível com MySQL)
KEY (sintaxe compatível com MySQL)
-
Particionamento RANGE
RANGE (sintaxe compatível com MySQL)
RANGE COLUMNS (sintaxe compatível com MySQL)
-
Particionamento LIST
LIST (sintaxe compatível com MySQL)
LIST COLUMNS (sintaxe compatível com MySQL)
-
Particionamento específico para cenários
CO_HASH (sintaxe específica do PolarDB-X)
Particionamento HASH
O particionamento HASH utiliza um algoritmo de hash consistente para calcular valores de hash a partir de colunas de chave de partição ou expressões de funções de particionamento e rotear os dados conforme o resultado. Essa categoria inclui o KEY partitioning (baseado em coluna) e o HASH partitioning (baseado em função).
Comparação entre particionamento KEY e particionamento HASH
|
Tipo de particionamento |
Chave de partição suportada |
Suporte a funções de particionamento |
Sintaxe da instrução |
Limites |
Política de roteamento (consulta pontual) |
|
Particionamento KEY (padrão) |
Chave de partição de coluna única |
Não |
|
|
|
|
Chave de partição vetorial |
Não |
|
|
|
|
|
Hash |
Chave de partição de coluna única |
Não |
|
|
A política de roteamento de |
|
Sim |
|
|
|||
|
Chave de partição vetorial |
Não |
|
|
|
Particionamento RANGE
No particionamento RANGE, a comparação dos valores da chave de partição ou dos resultados de funções de particionamento com limites predefinidos define o roteamento dos dados. Esta modalidade abrange o RANGE COLUMNS partitioning (baseado em coluna) e o RANGE partitioning (baseado em função).
Comparação entre particionamento RANGE e particionamento RANGE COLUMNS
|
Tipo de particionamento |
Chave de partição suportada |
Suporte a funções de particionamento |
Sintaxe da instrução |
Limites |
Política de roteamento (consulta pontual) |
|
Range Columns |
Chave de partição de coluna única e chave de partição vetorial |
Não |
|
Permite divisão de partição quente. Caso muitas linhas compartilhem o mesmo valor de c1 (por exemplo, 88), a divisão pode ocorrer por c2. |
|
|
Range |
Chave de partição de coluna única |
Sim |
|
|
|
Particionamento LIST
O funcionamento do particionamento LIST assemelha-se ao do particionamento RANGE, porém a correspondência de valores ocorre contra listas discretas em vez de intervalos. Compreende o LIST COLUMNS partitioning (baseado em coluna) e o LIST partitioning (baseado em função).
Comparação entre particionamento LIST e particionamento LIST COLUMNS
|
Tipo de particionamento |
Chave de partição suportada |
Suporte a funções de particionamento |
Sintaxe da instrução |
Limites |
Política de roteamento (consulta pontual) |
|
List Columns |
Chave de partição de coluna única e chave de partição vetorial |
Não |
|
Não há suporte para divisão de partição quente. |
|
|
List |
Chave de partição de coluna única |
Sim |
|
Não há suporte para divisão de partição quente. |
Particionamento COHASH
O PolarDB-X também disponibiliza o particionamento COHASH para tabelas que exigem particionamento horizontal em várias colunas com valores semelhantes.
A tabela a seguir compara o COHASH com os particionamentos HASH e KEY.
Comparação entre particionamento COHASH, particionamento HASH e particionamento KEY
|
Item |
CO_HASH |
KEY |
Hash |
|
Sintaxe da instrução |
|
|
|
|
Chave de partição de coluna única |
Sem suporte |
Suportado |
Suportado |
|
Chave de partição vetorial |
Suportado |
Suportado |
Suportado |
|
Funções de particionamento em colunas de chave de partição vetorial |
Suportado. Exemplo:
|
Sem suporte |
Sem suporte |
|
Relação entre colunas de chave de partição |
Os valores das colunas devem ser semelhantes. É necessário manter similaridade entre as colunas de chave de partição. Exemplos:
|
Semelhante a um prefixo de índice composto. |
Semelhante a um prefixo de índice composto. |
|
Consulta equivalente para colunas de chave de partição com prefixos, pruning de partição e exemplos |
Suportado. Exemplos:
|
Suportado. Exemplos:
|
Sem suporte. O pruning de partição exige condições equivalentes em todas as colunas de chave de partição. Exemplos:
|
|
Consulta equivalente para colunas de chave de partição sem prefixos, pruning de partição e exemplos |
Suportado. Condições equivalentes para todas as colunas de chave de partição ativam o pruning de partição. Exemplos:
|
Sem suporte. Na ausência de condições de prefixo, todas as partições são verificadas. Exemplos:
|
Sem suporte. Sem condições de prefixo, ocorre varredura em todas as partições. Exemplos:
|
|
Consulta por intervalo |
Sem suporte. Todas as partições são verificadas. |
Sem suporte. Todas as partições são verificadas. |
Sem suporte. Todas as partições são verificadas. |
|
Política de roteamento (consulta pontual) |
|
Para mais detalhes, consulte Política de roteamento na seção Particionamento HASH. |
A política de roteamento é igual à do Particionamento Hash. |
|
Divisão de partição quente |
Sem suporte. Não é possível realizar nova divisão de partição quente em um valor de chave quente como |
Suportado |
Sem suporte |
|
Gerenciamento de partições, incluindo divisão, mesclagem e migração |
Suportado |
Suportado |
Suportado |
|
Subparticionamento |
Suportado |
Suportado |
Suportado |