Tenho uma tabela particionada por valores de um campo KPI. Existem alguns KPI com uma grande quantidade de linhas, alguns com números pequenos. O particionamento por nome de KPI (string) mantém um bom desempenho da consulta.
A fonte de dados ocasionalmente introduzirá um novo KPI que interrompe o carregador. O arquivo que está sendo carregado e que contém o novo valor de kpi falhará.
Quero adicionar uma partição padrão para cobrir essas condições.
Depois de pesquisar, encontrei e tentei este comando
alterar tabela X adicionar partição (valores pDefault da partição em (DEFAULT));
O ambiente de trabalho MySQL não gosta deste comando destacando o penúltimo ')' dizendo que não é válido nesta posição, esperando '('.
Examinei o índice de ajuda do MySQL e pesquisei no Google por uma hora, mas não consigo encontrar o que há de errado com esta ou outra maneira de fazer o que quero.
Ideias?
Você deve listar valores explícitos ao usar o particionamento LIST. Você não pode criar uma partição "padrão" ou "pega-tudo" para valores que não listou.
Isso está documentado:
https://dev.mysql.com/doc/refman/8.0/en/partitioning-list.html diz:
PARTITIONing
raramente ajuda no desempenho. Se suas dúvidas são geralmenteentão o desempenho pode ser melhorado eliminando o particionamento e adicionando índice(s) composto (s) que começam com
kpi
.Por favor, forneça
SHOW CREATE TABLE
algumas das principais dúvidas. Com eles, podemos fornecer conselhos mais específicos.Conforme mencionado por Bill,
PARTITION BY LIST
é um pesadelo de manutenção se a lista mudar. Não vejo nenhum bom uso para isso.