Este artigo trata dos recursos relacionados com o particionamento de tabelas com a finalidade de se obter melhor desempenho de bases de dados no MySQL.
Para que serve:
Aprenda a particionar tabelas consideradas grandes no servidor de bancos de dados MySQL para obter melhor resultado relacionado com o tempo de resposta em consultas e melhor proveito de hardware e estratégias de TI.
Em que situação o tema é útil:
Em situações onde o banco de dados de uma organização está crescendo de tamanho gradativamente e é necessário buscar soluções para evitar problemas de desempenho em consultas SQL.
Resumo Devman
Este artigo apresenta o assunto de particionamento no MySQL, destacando conceitos básicos sobre este tópico. Veremos como particionar tabelas consideradas grandes no servidor de bancos de dados MySQL com objetivo de obter melhor resultado relacionado com o tempo de resposta em consultas e melhor proveito de hardware e estratégias de TI pode ser uma boa estratégia.
É notória a necessidade de acesso eficiente e rápido aos bancos de dados, independente do volume armazenado. Na realidade, muitas organizações dependem dessa agilidade para transacionar com seus clientes e fornecedores ou mesmo para tomar decisões corretivas sobre sua operação.
Essa questão representa o elemento central abordado no processo de modelagem física de dados que avalia, dentre um conjunto de recursos, aqueles mais adequados às expectativas de desempenho e alinhados as características do ambiente computacional da organização.
O particionamento de dados, mecanismo oferecido por parte dos Sistemas Gerenciadores de Banco de Dados do mercado, apresenta-se como um desses recursos cuja contribuição para o desempenho e administração de um banco de dados se dá pela segmentação de seus objetos de dados – como tabelas e índices – em porções menores. O mecanismo de particionamento determina a divisão dos dados dentre as partições com base no critério estabelecido sobre os valores de uma ou mais colunas de um objeto, conjuntamente denominadas de chave de partição.
Objetos particionados são totalmente transparentes para os sistemas de informação e instruções DML padrão, uma vez que as características lógicas permanecem preservadas – definição de colunas e constraints, por exemplo – enquanto as físicas podem apresentar variações – local de armazenamento, por exemplo. Contudo, para o SGBD, a presença desses objetos leva-o a operar no nível de partição. Quando uma operação de consulta é efetuada sobre uma tabela particionada, o otimizador determina a partição envolvida – característica denominada de Partition Pruning –, desde que a operação esteja condicionada pela chave de partição.
Neste contexto, este artigo aborda o assunto de particionamento no MySQL, destacando conceitos básicos sobre este tópico considerando os recursos providos desde as primeiras versões que viabilizou este recurso.
A parte intuitiva: partições por colunas não-inteiras
Qualquer pessoa que tem usado partições por um período teve em algum momento no passado alguma frustração devido à quantidade de problemas deparados ao usar colunas não-inteiras. Partições nas versões mais antigas do MySQL podiam apenas lidar com valores inteiros, o que significa que se você quisesse partições em datas ou strings, tínhamos que converter essas colunas com uma função.
Após estas primeiras versões, foram adicionados recursos de particionamento com as opções RANGE e LIST. Nestas versões foi criada uma nova palavra-chave COLUMNS que introduziu esta nova funcionalidade.
Para os exemplos que utilizaremos a partir de agora iremos considerar uma tabela como a apresentada na Listagem 1.
Listagem 1. Tabela a ser usada como exemplo
...