O particionamento por interval 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 Query the engine version.
Informações básicas
Ao inserir dados em uma tabela particionada por range, se os valores ultrapassarem o limite da partição existente, a inserção falhará e o sistema retornará um erro. Nas tabelas com particionamento por intervalo, o banco de dados cria novas partições automaticamente com base no intervalo definido pela cláusula INTERVAL quando os dados excedem o range atual.
Se o intervalo da partição for de um mês e os dados a serem inseridos estiverem dois meses à frente do ponto de transição atual (valor máximo de limite da partição vigente), o sistema criará a partição correspondente ao mês dos dados e a do mês anterior. Por exemplo, suponha que você tenha criado uma tabela com particionamento por interval range com intervalo mensal e ponto de transição em 15 de setembro de 2021. Ao tentar inserir dados de 10 de dezembro de 2021, o banco de dados gera automaticamente três partições cobrindo os intervalos entre 15 de setembro de 2021 e 15 de dezembro de 2021. Em seguida, os dados são inseridos na partição referente ao intervalo que abrange 10 de dezembro de 2021.
Limites
A função COLUMNS() aceita apenas uma 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ão criadas exclusivamente 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 novas partições.
Não altere o intervalo após a criação da tabela.
O subparticionamento tem suporte apenas para range-hash partitioned tables.
O comando LOAD DATA exige que o intervalo das partições existentes cubra todos os dados importados.
Triggers, funções armazenadas e procedimentos armazenados não podem inserir dados em uma partição de interval range.
A instrução LOCK TABLES não é suportada.
As 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 via CREATE TABLE e instruções DDL) não podem usar o prefixo _p.
Não reverta 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 erro de deadlock.
Interval Range Overview estende o particionamento range. Quando o particionamento por interval range não for aplicável, utilize o particionamento por range.
Uso
Defina os parâmetros abaixo para ativar ou configurar o particionamento por interval range.
|
Parâmetro |
Descrição |
|
partition_level_mdl_enabled |
O particionamento por interval range baseia-se no recurso de MDL no nível de partição. A granularidade menor do Minimum Description Length (MDL) reduz o impacto das instruções DDL sobre as instruções DML. Portanto, para utilizar esse tipo de particionamento, garanta que o parâmetro partition_level_mdl_enabled esteja definido como ON. Se estiver OFF, não será possível criar tabelas com particionamento por interval range. Em tabelas já existentes com essa configuração, somente valores dentro do intervalo da partição serão aceitos; caso contrário, o sistema reportará um erro. |
|
interval_partitioning_enabled |
Este parâmetro controla especificamente o recurso de particionamento por interval range, enquanto partition_level_mdl_enabled gerencia o MDL no nível de partição. Ambos são obrigatórios e devem estar definidos como ON para que o particionamento por interval range funcione. Com interval_partitioning_enabled em OFF, a criação de tabelas desse tipo fica bloqueada. Para tabelas existentes, apenas valores dentro do intervalo da partição podem ser inseridos, e qualquer valor fora desse limite resultará em erro. |
|
transaction_isolation |
O recurso de MDL no nível de partição oferece isolamento apenas nos níveis read-committed ou read-uncommitted. Assim, este parâmetro deve ser compatível com o nível de isolamento do MDL. Por padrão, clusters cloud utilizam o nível de isolamento read-committed. |