Desejo reter dados por 90 dias apenas para todas as 15 tabelas em meu banco de dados Mariadb. O tamanho atual do banco de dados é de 60 GB. Quais são as opções disponíveis para a realização do mesmo.
relate perguntas
-
Erro de cabeçalho do MariaDB
-
Erro 1046 Mariadb: nenhum banco de dados selecionado
-
Você ainda usa o MyISAM ou prefere o mecanismo de armazenamento Aria?
-
Como posso melhorar minha instrução SQL com resultados semanais com semana começando na quinta-feira ou em qualquer outro dia da semana?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
Você poderia
PARTITION BY RANGE(TO_DAYS(...))
cada mesa. No entanto, é um tanto estranho ter mais de uma mesa que é grande e precisa ser limpa periodicamente.Eu recomendaria partições semanais. Mais detalhes: Partição
Esteja ciente de que você deve refazer muitos dos índices ao particionar. E é improvável que o particionamento forneça qualquer benefício de desempenho, exceto para os arquivos periódicos
DROP PARTITION
eREORGANIZE PARTITION
.Começando com MariaDB-10.9.1 , as tabelas com versão do sistema podem criar partições automaticamente e fazer com que elas expirem.
Portanto, mesmo para uma tabela sem registros de data e hora em uma coluna explícita:
A tabela com versão do sistema é o conceito dos dados atuais e históricos , portanto, as consultas de dados históricos requerem tratamento especial e isso não é uma substituição ao particionamento convencional na resposta de Rick James.
Isso pode ou não fazer sentido, dependendo do seu aplicativo.
Os dados históricos são consultados como :
Portanto, obviamente, os dados estão vinculados ao horário atual do sistema e os dados excluídos vão para o histórico e são limpos após o término de seus 90 dias.