Todos os produtos
Search
Central de documentação

PolarDB:Interval range partitioning

Última atualização: Jun 28, 2026

O particionamento por intervalo de range estende o particionamento por range. Esse recurso permite que o banco de dados crie automaticamente uma partição quando os dados a serem inseridos excedem o intervalo de uma partição existente.

Pré-requisitos

A versão do cluster deve ser PolarDB for MySQL 8.0.2 e a versão de revisão deve ser 8.0.2.2.0 ou posterior. Para visualizar a versão do kernel do seu cluster, consulte Consultar a versão do mecanismo.

Informações básicas

Ao inserir dados em uma tabela particionada por range, se os valores estiverem fora do intervalo da partição existente, a inserção falhará e o sistema retornará um erro. No particionamento por intervalo, quando os dados a serem inseridos excedem o intervalo atual, o banco de dados cria automaticamente novas partições com base no intervalo especificado pela cláusula INTERVAL.

Se o intervalo da partição for definido como um mês e os dados a serem inseridos estiverem dois meses à frente do ponto de transição atual (o valor limite máximo da partição atual), o sistema criará a partição correspondente ao mês dos dados e a partição do mês anterior. Por exemplo, suponha que você crie uma tabela com particionamento por intervalo de range com intervalo de um mês e ponto de transição atual em 15 de setembro de 2021. Se tentar inserir dados de 10 de dezembro de 2021, o banco de dados criará automaticamente três partições para os três intervalos entre 15 de setembro de 2021 e 15 de dezembro de 2021. Em seguida, o sistema inserirá os dados na partição referente ao intervalo que abrange 10 de dezembro de 2021.

Limites

  • COLUMNS() aceita apenas uma única chave de partição, que deve ser numérica ou de intervalo de datas.

  • Defina pelo menos uma partição de range.

  • As partições só podem ser criadas em ordem crescente.

  • Chaves de partição DATE não aceitam intervalos de TIME (HOUR, MINUTE ou SECOND). Chaves de partição TIME não aceitam intervalos de DATE (YEAR, QUARTER, MONTH, WEEK ou DAY). Chaves de partição SECOND exigem um intervalo mínimo de 60.

  • Instruções INSERT SELECT e UPDATE não adicionam partições.

  • Não é possível alterar o intervalo após a criação da tabela.

  • O subparticionamento tem suporte apenas para tabelas particionadas por range-hash.

  • LOAD DATA exige que o intervalo de partição existente cubra todos os dados importados.

  • Triggers, funções armazenadas e procedimentos armazenados não podem inserir dados em uma partição de intervalo de range.

  • A instrução LOCK TABLES não tem suporte.

  • Chaves de partição não podem ser AUTO_INCREMENT, coluna virtual, coluna gerada padrão ou do tipo STRING.

  • Partições personalizadas (incluindo as criadas por CREATE TABLE e instruções DDL) não podem usar o prefixo _p.

  • Não é possível reverter partições criadas automaticamente.

  • Inserções em lote podem criar até 30 partições por vez.

  • Executar uma instrução DDL enquanto o INSERT cria partições automaticamente pode causar um erro de deadlock.

  • O particionamento por intervalo de range estende o particionamento por range. Quando o particionamento por intervalo de range não for aplicável, utilize o particionamento por range.

Uso

Defina os seguintes parâmetros para ativar ou configurar o particionamento por intervalo de range.

Parâmetro

Descrição

partition_level_mdl_enabled

O particionamento por intervalo de range baseia-se no recurso MDL no nível de partição. A granularidade menor do Minimum Description Length (MDL) reduz o impacto das instruções DDL nas instruções DML. Portanto, para usar o particionamento por intervalo de range, garanta que o parâmetro partition_level_mdl_enabled esteja definido como ON. Se esse parâmetro estiver OFF, não será possível criar uma tabela com particionamento por intervalo de range. Em tabelas existentes desse tipo, só é permitido inserir valores dentro do intervalo da partição; caso contrário, o sistema reportará um erro.

interval_partitioning_enabled

Este parâmetro controla o recurso de particionamento por intervalo de range, enquanto partition_level_mdl_enabled controla o recurso MDL no nível de partição. Ambos são obrigatórios para o funcionamento do particionamento por intervalo de range e devem estar definidos como ON. Se interval_partitioning_enabled estiver OFF, a criação de tabelas com esse tipo de particionamento será bloqueada. Para tabelas já existentes, a inserção fica restrita aos valores dentro do intervalo da partição, gerando erro para valores fora desse limite.

transaction_isolation

O recurso MDL no nível de partição oferece isolamento apenas nos níveis read-committed ou read-uncommitted. Assim, este parâmetro deve ser consistente com o nível de isolamento do recurso MDL no nível de partição. Por padrão, o cluster em nuvem utiliza o nível de isolamento read-committed.